ExecuteNonQuery: Connection 属性未初始化
提供的 C# 代码中遇到的问题是名为 InsertCommand 的 SqlCommand 的 Connection 属性尚未初始化已设置,导致错误“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中文网其他相关文章!