首頁 > 後端開發 > C++ > 為什麼 `ExecuteNonQuery()` 會失敗並出現「未初始化的連線屬性」錯誤?

為什麼 `ExecuteNonQuery()` 會失敗並出現「未初始化的連線屬性」錯誤?

Mary-Kate Olsen
發布: 2025-01-03 21:49:39
原創
741 人瀏覽過

Why Does `ExecuteNonQuery()` Fail with an

ExecuteNonQuery:因為未初始化的連線屬性而失敗

問題:

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板