.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();
}
}
}
まとめ(感想文)
基本的なことなんだけど、忘れちゃってましたねえ…。というか過去にも同じことしちゃってましたねえ…。
備忘録(戒め)として記録を残しておこう。
