無法執行非查詢:連線未初始化
嘗試使用下列指令執行查詢時會出現重複出現的問題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中文網其他相關文章!