2

みんなどうですか?

今日はとても素朴な質問です。2 つの別個のスレッドに 2 つの異なる SqlCommand を指定するとします。両方の SqlCommand が同じ SqlConnection を使用する場合、同時に実行できますか? SqlConnection はこの動作をブロックしますか? それとも何か...もっと面白いことが起こりますか?

(私は SqlConnections がこの正確な理由で接続文字列によってプールされていると信じていますが、安心が必要です)


これは架空の質問であり、説明した設計で SqlConnection がどのように動作するかを知りたいだけです。

4

2 に答える 2

3

ADO.NET 接続プールを配置した場合、クエリを実行する適切な方法は、接続オブジェクトを作成して開き、(接続オブジェクトを使用する) コマンド オブジェクトを実行してから、接続を閉じることです。したがって、説明したシナリオ(2つの異なるコマンドオブジェクトへのオープン接続を渡す)は決して発生しないはずです。通常の使用では、2 つの異なるコマンド オブジェクトは、互いに独立して独自の接続オブジェクトを開いたり閉じたりする必要があります。つまり、2 つのコマンド オブジェクトを同時に同じ接続を使用しようとするという問題に遭遇することはありません。

于 2010-06-24T14:23:38.990 に答える
0

Multiple Active Result Setsを検討する必要があるかもしれません。特定の制限がありますが、1 つの SqlConnection オブジェクトに対して複数のクエリを実行できます。

于 2010-06-25T08:19:43.487 に答える