【问题标题】:Can we cancel query issued to sql server?我们可以取消向 sql server 发出的查询吗?
【发布时间】:2012-12-27 10:05:44
【问题描述】:

我有一段复杂的 SQL,它涉及大量计算等。我想知道是否可以取消向 SQL 服务器发出的查询?

例如。有一个名为“搜索”的按钮,用户单击“搜索”。我想显示一个名为“取消”的按钮,它应该取消向 SQL 服务器发出的查询。

这可能吗?

【问题讨论】:

  • 既然您可以在 Management Studio 中完成,我坚信您也可以自己完成。另请参阅 MSDN 中的 Asynchronous Operations
  • @Jack 我觉得哪一部分不清楚?
  • 问题“这可能吗?” @UweKeim 完美回答
  • @rene:答案应该在上下文中。我可以说关闭机器..查询将被取消。然而,这并不能回答这个问题,也许还应该尝试阅读整个问题,而不仅仅是阅读结尾行。
  • +1,答案是“是”8-/

标签: c# sql-server sql-server-2008 c#-4.0 ado.net


【解决方案1】:

ADO.NET 中有很多异步函数,例如SqlCommand.BeginExecuteNonQuery.

您可以在您的应用程序中调用这些函数,存储结果对象并在用户单击“取消”按钮时取消它。

所以在伪代码中你可以执行以下步骤:

  1. 用户点击搜索按钮。
  2. 在按钮的处理程序中,打开您的数据库连接等。
  3. 显示您的取消按钮。
  4. 调用您选择的 ADO.NET 异步函数。
  5. 存储函数调用返回的IAsyncResult对象(用于检测操作何时完成以再次隐藏取消按钮)。
  6. 在取消按钮的处理程序中,调用SqlCommandCancel method

【讨论】:

  • 谢谢!!这真的给了我一个线索 :) 并且比让我的用户访问服务器详细信息更好:)
猜你喜欢
  • 1970-01-01
  • 2018-01-11
  • 2010-11-21
  • 2011-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-18
  • 1970-01-01
相关资源
最近更新 更多