我们可以取消发给sql server的查询吗?

Jac*_*ack 1 c# sql-server ado.net sql-server-2008 c#-4.0

我有一个复杂的SQL,它涉及大量的计算等.我想知道是否有可能取消发给SQL服务器的查询?

防爆.有一个名为"搜索"的按钮,用户点击"搜索".我想显示一个名为"取消"的按钮,它应该取消发给SQL服务器的查询.

这可能吗?

Uwe*_*eim 8

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

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

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

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

  • 谢谢!!这真的给了我一个线索:)并且比给我的用户访问服务器详细信息更好:) (3认同)