.NET開発環境でSystem.Data.SqlClient
を使って、連続でデータベースを操作してるとSystem.InvalidOperationException
が発生して、その後プログラムを再起動するまでデータベースにアクセスできなくなる事象に対応したい!
概要
この記事では、.NET開発環境でSystem.Data.SqlClient
を使って、連続でデータベースを操作してるとSystem.InvalidOperationException
が発生して、その後プログラムを再起動するまでデータベースにアクセスできなくなる事象に対応する手順を掲載する。
仕様書
環境
- .NET Framework 4.7.2
手順書
この場合のSystem.InvalidOperationException
発生の原因はSqlConnection
をClose
をし忘れ。
回避方法は、使用後にちゃんとClose
してあげる。
Close
しないと環境にもよるんだけどSqlConnection
を1000個以上Open
にするとSystem.InvalidOperationException
が発生して、その後プログラムを再起動するまでデータベースにアクセスできなってしまう。
クラスにしてるんならIDisposable
を継承して、Dispose
の中でClose
するとか。下記は例。
public class MSSQL : IDisposable
{
private SqlConnection _sqlConnection;
public void Dispose()
{
if (this._sqlConnection != null)
{
this._sqlConnection.Close();
}
}
}
まとめ(感想文)
基本的なことなんだけど、忘れちゃってましたねえ…。というか過去にも同じことしちゃってましたねえ…。
備忘録(戒め)として記録を残しておこう。