C# 中如何立即停止SQL 语句的执行

我在C#的后台线程中执行一个Sql语句,此语句需要很长一段时间才能有结果(数据库巨大),那么在这段时间内如果要立即停止执行程序里该怎么做???

我虽然可以把这个线程abort终止,但却发现SQL语句继续执行,需要很长一段时间才能真正停止。
请教大家:如何立即停止SQL语句的执行??感觉终止线程但SQL语句还在执行中
如何cancel 或者kill 一个查询数据库的线程(Thread)? 我的现状: 要从数据库中查询数据.界面上有 run 和 cancel按钮. click the run button, It will send a SQL query to the databASE to get data. 如果时间太长,user 可以按cancel按钮,取消查询. 问题出在cancel功能上,就是怎么能杀死或者取消这个查询thread? 我的实验结果: 1. 用backgroundworker的话,由于这不是循环或者迭代操作,因此无法检查cancel属性,导致不能取消查询操作; 2. 在run 按钮的脚本里建立新的单独的线程的话, 点击run后,无法点击cancel 按钮. 3. command.cancel()方法也试过了, 不起作用. 看网上有人说不好使. 请问如何解决无法点击的问题? 如何取消这个查询的thread? 或者上面的思路不对,哪位大虾有好的方法? 已经拖了好长时间了, 不能再拖了. 多些各位

可以,如:
string sql ="select * from users";
SqlCommand cmd = new SqlCommand(sql,cnn);
//执行
cmd.ExecuteNonQuery();
//取消
cmd.Cancel();
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-02-14
要可以终止的话, 需要采用 异步执行 的方式才可以。

普通的同步执行,是不能停止的
第2个回答  2009-02-15
如果查不出来数据,还要这个按钮干嘛呢?

即使数据库再大,也应该能select有用的数据,数据过滤有问题
第3个回答  2009-02-15
异步方式
相似回答