【.NET】SqlClients連続使用中にInvalidOperationExceptionが発生する【戒め】

ネコニウム研究所

PCを利用したモノづくりに関連する情報や超個人的なナレッジを掲載するブログ

【.NET】SqlClients連続使用中にInvalidOperationExceptionが発生する【戒め】

2022-4-20 | ,

.NET開発環境でSystem.Data.SqlClientを使って、連続でデータベースを操作してるとSystem.InvalidOperationExceptionが発生して、その後プログラムを再起動するまでデータベースにアクセスできなくなる事象に対応したい!

概要

この記事では、.NET開発環境でSystem.Data.SqlClientを使って、連続でデータベースを操作してるとSystem.InvalidOperationExceptionが発生して、その後プログラムを再起動するまでデータベースにアクセスできなくなる事象に対応する手順を掲載する。

仕様書

環境

  • .NET Framework 4.7.2

手順書

この場合のSystem.InvalidOperationException発生の原因はSqlConnectionCloseをし忘れ。

回避方法は、使用後にちゃんと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();
        }
    }
}

まとめ(感想文)

基本的なことなんだけど、忘れちゃってましたねえ…。というか過去にも同じことしちゃってましたねえ…。

備忘録(戒め)として記録を残しておこう。