問題:
嘗試使用ExecuteNonQuery 執行 命令時),遇到錯誤,表示連線屬性尚未初始化。是什麼原因導致此問題?
答案:
錯誤訊息「ExecuteNonQuery:Connection 屬性尚未初始化」表示 SqlConnection 物件尚未初始化正確指派給 SqlCommand 物件。若要解決此問題,必須明確設定 SqlCommand 的連線屬性。
解決方案:
分配連接的一種方法是透過 SqlCommand類別的建構子:
cmd.InsertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) ", connection1);
或者,可以指派連接屬性直接:
cmd.InsertCommand.Connection = connection1;
其他注意事項:
其他注意事項:
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) ")) { insertCommand.Connection = connection1; cmd.InsertCommand = insertCommand; // Other code... connection1.Open(); insertCommand.ExecuteNonQuery(); }其他注意事項:其他注意事項:其他注意事項: Using 語句: 對於實作IDisposable 的對象,建議使用using語句,例如SqlConnection,以確保正確的資源清理和連接連接池: 重複建立和關閉連接(例如,對於foreach 循環中的每個條目)是不必要的開銷。相反,請考慮在循環外建立並開啟連接,並僅在循環完成後關閉它。 範例程式碼:
以上是為什麼 `ExecuteNonQuery()` 會失敗並出現「未初始化的連線屬性」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!