首页 >后端开发 >C++ >为什么 ExecuteNonQuery 失败并显示'连接未初始化”?

为什么 ExecuteNonQuery 失败并显示'连接未初始化”?

Susan Sarandon
Susan Sarandon原创
2025-01-03 11:10:38130浏览

Why Does ExecuteNonQuery Fail with

无法执行非查询:连接未初始化

尝试使用以下命令执行查询时会出现重复出现的问题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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn