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

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

Mary-Kate Olsen
リリース: 2025-01-03 15:49:40
オリジナル
996 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート