【.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();
        }
    }
}

まとめ(感想文)

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

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