无法执行非查询:连接未初始化
尝试使用以下命令执行查询时会出现重复出现的问题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中文网其他相关文章!