首頁 >後端開發 >C++ >為什麼我的 C# `ExecuteNonQuery` 會拋出「連線屬性未初始化」錯誤?

為什麼我的 C# `ExecuteNonQuery` 會拋出「連線屬性未初始化」錯誤?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-04 05:47:39444瀏覽

Why is my C# `ExecuteNonQuery` throwing a

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn