从 .net 代码中停止 SQL 查询执行

10
我正在从“.net”代码中执行一个存储过程。由于有很多数据,执行时间太长了。在C#代码中有没有办法停止这个执行?
换句话说,如果我们从数据库本身执行查询,有一种选项可以停止执行,但在代码中是否可能?

你能在存储过程中添加筛选器吗?尝试阅读更多关于 SQL 最佳实践的内容。 - Crimsonland
3个回答

17

1
显然,关闭命令更有可能100%地起作用:https://dev59.com/5nNA5IYBdhLWcg3wn_U1#3699391 - user423430

11

是的,您可以使用SqlCommand.Cancel取消查询。但是,该命令必须在另一个线程中运行(否则Cancel将只在命令完成后调用)。

此外,如果您希望在运行超过指定时间限制时取消此查询,还可以指定CommandTimeout


命令必须在另一个线程中运行。有现实世界的示例吗? - Kiquenet
1
值得一提的是,对于MySQL数据库,设置“CommandTimeout”并不会取消查询。它只是结束了客户端的等待。这需要在MySql Connector/Connection.cs中显式调用。 - Peter Majeed

1
你可以执行myCommand.Cancel(),这是最好的方法,因为我以前也遇到过类似的问题,使用myCommand.Cancel()解决了我的问题。 :) :)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接