ExecuteNonQuery: Connection 屬性未初始化
提供的 C# 程式碼中遇到的問題是名為 InsertCommand 的 SqlCommand 的 ConnectionlCommand 的 ConnectionlCommand屬性尚未初始化已設置,導致錯誤「ExecuteNonQuery:連線屬性尚未設定已初始化。」
要解決此錯誤,您必須將 Connection 屬性明確指派給 InsertCommand。這可以使用 Connection 屬性或 SqlCommand 的建構子來實現。
// Option 1: Using the Connection property cmd.InsertCommand.Connection = connection1; // Option 2: Using the constructor cmd.InsertCommand = new SqlCommand("INSERT INTO Application VALUES (@EventLog, @TimeGenerated, @EventType, @SourceName, @ComputerName, @InstanceId, @Message) ", connection1);
此外,建議對 SqlConnection 和 SqlCommand 等 IDisposable 物件使用 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) ")) { insertCommand.Connection = connection1; cmd.InsertCommand = insertCommand; connection1.Open(); foreach (EventLogEntry entry in alog.Entries) { // Assign parameter values // ... // Execute the insert command cmd.InsertCommand.ExecuteNonQuery(); } }
透過進行這些調整,InsertCommand 的連接屬性將被正確設置,並且程式碼應該執行而不會遇到錯誤。
以上是為什麼我的 C# `ExecuteNonQuery` 會拋出「連線屬性未初始化」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!