私は接続とSqlReaderを作成したが、それらの両方を閉じるのを忘れ:忘れられた接続を閉じるにはどうすればいいですか?
SqlConnection conn = new SqlConnection("connection info");
conn.Open();
string sql = "SQL command HERE";
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader reader = cmd.ExecuteReader();
今すぐトライを再度コードを実行するとき、それはいつも私にこのエラーを与える:
System.InvalidOperationException: There is already an open DataReader associated with this Command which must be closed first.
このlinkは私に言いました接続を正しく開いたり閉じたりする方法を説明していますが、まだ実行中のものを閉じる方法について何も説明していません。
私はPCをシャットダウンしようとしましたが、SQLサーバ上のデータベースのオプションを探しましたが(有益なものは見つかりませんでした)...コードを変更して、接続と読者の両方を閉じるだけでしたコードを変更しても問題は残りました)。
「ゴースト」接続を閉じるにはどうすればよいですか?すべての実行中の接続を閉じるための方法(無理矢理)はありますか?
[EDIT:]私は本当にこの問題を解決することができませんでした。この問題を回避するには、
今後の参考のためにあなたが利用するべき多くの人が書いているように、using()ステートメントしかし、ブロッキングの問題を回避するには、運用環境にない場合はMSSQLSERVERインスタンスを再起動してみてください。 – Jim