ホームページ >バックエンド開発 >C++ >ExecuteNonQuery で「接続プロパティが初期化されていません」というメッセージが表示されるのはなぜですか?

ExecuteNonQuery で「接続プロパティが初期化されていません」というメッセージが表示されるのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-03 15:49:401003ブラウズ

Why Does My ExecuteNonQuery Throw

ExecuteNonQuery: 接続プロパティが初期化されていません

エラー「ExecuteNonQuery: 接続プロパティが初期化されていません」は、 SqlCommand とデータベース。この問題を解決するには、次の手順に従います。

1.接続を SqlCommand に割り当てます

提供されたコードでは、接続は connection1.Open(); の行で確立されます。 ExecuteNonQuery メソッドで使用される InsertCommand には割り当てられません。これを修正するには、コンストラクターまたはプロパティを使用して、InsertCommand:

cmd.InsertCommand = new SqlCommand("...");
cmd.InsertCommand.Connection = connection1;

2 に接続を割り当てます。リソースの破棄には using ステートメントを使用する

SqlConnection などの IDisposable オブジェクトを自動的に破棄するには、using ステートメントを使用することをお勧めします。これにより、ステートメント ブロックが終了すると接続も閉じられます:

using (var connection1 = new SqlConnection(...))
{
    using (var cmd = new SqlDataAdapter())
    {
        using (var insertCommand = new SqlCommand(...))
        {
            // ...
            connection1.Open();
        }
    }
}

3.接続処理の最適化

foreach ループ内のすべてのエントリに対して新しい接続を作成する必要はありません。これを最適化するには、ループの外に接続とアダプターを作成し、それらを再利用します。

var connection1 = new SqlConnection(...);
var cmd = new SqlDataAdapter();
var insertCommand = new SqlCommand(...);
insertCommand.Connection = connection1;

...

connection1.Open();
// ...

// No need to close the connection explicitly

以上がExecuteNonQuery で「接続プロパティが初期化されていません」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。