超长时间的SQL查询该如何处理
我心依旧 2017-10-05 09:41:41 我这里有一个需求。
就是在数据库中查询一个值,然后因为数据库非常庞大,查询的时间很长,我现在的做法是用 BackgroundWorker 组件放到线程中进行的,但是有一个问题就是无法取消,一旦我 cancelsync 界面就死掉了。我 设置 sqlconnection 为 close 也不行,同样界面死掉。
然后我今天研究的时候突然发现还有
sqlcomm.BeginExecuteReader();
sqlcomm.BeginExecuteNonQuery();
之类的语句,是不是可以直接用SQL类实现类似于BackgroundWorker 的效果啊?而且这样的话可以直接取消正在进行的查询。
我是怕正在查询如果直接关掉窗体的话,因为那个connection没有close,会不会占用资源啊。
不知道各位能不能看懂我写的,因为sql这一块其他的用法用的不多,都是老老实实的用着一套模板,还是想多了解一些其他的用法!谢谢