1

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

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

这可能吗?

4

1 回答 1

8

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

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

因此,在伪代码中,您可以执行以下步骤:

  1. 用户单击Search按钮。
  2. 在按钮的处理程序中,打开您的数据库连接等。
  3. 显示您的Cancel按钮。
  4. 调用您选择的 ADO.NET 异步函数。
  5. 存储IAsyncResult函数调用的返回对象(用于检测操作何时完成以再次隐藏取消按钮)。
  6. 在取消按钮的处理程序中,调用的Cancel方法SqlCommand
于 2012-12-27T10:11:51.660 回答