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