1

複雑な SQL があり、多くの計算などが含まれます。SQL サーバーに発行されたクエリをキャンセルできるかどうかを知りたいですか?

元。検索という名前のボタンがあり、ユーザーは検索をクリックします。「キャンセル」という名前のボタンを表示して、SQL サーバーに発行されたクエリをキャンセルする必要があります。

これは可能ですか?

4

1 に答える 1

8

ADO.NET には多くの非同期関数がありますSqlCommand.BeginExecuteNonQuery

アプリケーションでこれらの関数を呼び出し、結果オブジェクトを保存して、ユーザーが [キャンセル] ボタンをクリックしたときにそれをキャンセルできます。

したがって、疑似コードでは、次の手順を実行できます。

  1. ユーザーがSearchボタンをクリックします。
  2. ボタンのハンドラーで、DB 接続などを開きます。
  3. Cancelボタンを表示します。
  4. 選択した ADO.NET 非同期関数を呼び出します。
  5. IAsyncResult関数呼び出しの返されたオブジェクトを格納します (操作が終了したことを検出してキャンセル ボタンを再度非表示にするため)。
  6. キャンセル ボタンのハンドラで、 のCancelメソッドを呼び出しますSqlCommand
于 2012-12-27T10:11:51.660 に答える