Cannot ExecuteNonQuery: Connection Not Initialized
を使用してクエリを実行しようとすると、繰り返し問題が発生します。 ExecuteNonQuery:
ExecuteNonQuery: Connection property has not been initialized.
説明
このエラーは、SqlCommand オブジェクトの Connection プロパティが割り当てられていない場合に発生します。 Connection プロパティは、SqlCommand とデータベース間の接続を確立します。接続が確立されていないと、ExecuteNonQuery を実行できません。
解決策
この問題を解決するには、データベース接続を SqlCommand オブジェクトの Connection プロパティに割り当てます。
cmd.InsertCommand.Connection = connection1;
さらに、SqlConnection などの使い捨てリソースには using ステートメントを使用することをお勧めします。これにより、リソースが適切に破棄され、接続の終了が処理されます。
using (var connection1 = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=syslog2;Integrated Security=True")) { using (var cmd = new SqlDataAdapter()) { using (var insertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) ")) { // Assign connection insertCommand.Connection = connection1; // Set other properties... connection1.Open(); // Execute query... } } }
最適化
パフォーマンスをさらに最適化するには、反復ごとに複数の接続とデータ アダプターを作成することを避けてください。ループ。ループの外で接続とデータ アダプターを確立し、ループ内で再利用します。これにより、接続の作成と終了を複数回行うオーバーヘッドが軽減されます。
以上がExecuteNonQuery が「接続が初期化されていません」というメッセージで失敗するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。