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

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

Susan Sarandon
发布: 2025-01-03 11:10:38
原创
158 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板