4

毎回新しいオブジェクトを作成するのではなく、同じ SqlConnection オブジェクトを閉じて開くことに問題はありますか? 例えば:

SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
//Some work here
conn.Close()
//Some work here... conn stays in scope
conn.Open()

接続を 2 回目に開いて不正な状態例外を取得する可能性はありますか?

4

3 に答える 3

4

接続を閉じた後、接続を再開できます(ただし、破棄された接続を再開することはできません)。

Dave Zychの質問については、一部のお客様はデータベースに接続ごとのライセンスを持っていますが、接続を閉じると他のアプリケーションで使用できるようになります。

通常、接続プールを有効にします。この場合、データベースへの実際の接続は(常に)閉じられませんが(すぐに)、アプリケーション内の他の同等の接続オブジェクトで使用できます。

于 2012-12-21T15:20:28.070 に答える
1

これを行うのに問題はありません。接続は好きなだけ開閉できます。ただし、呼び出しごとに新しいものを作成するのではなく、同じものを開いたり閉じたりする必要があるのはなぜだろうか。それはあなたが次々と多くの電話をかけているからですか?その場合は、シングルSqlConnectionを使用して、最初に1回開き、最後に1回閉じることを検討してください。

于 2012-12-21T15:20:27.180 に答える