类型为';系统InvalidOperationException';发生在系统中.Data.dll-C#vi

本文关键字:系统 Data dll-C#vi InvalidOperationException 类型 | 更新日期: 2023-09-27 18:00:48

我有这样的代码行,当我试图将数据保存到数据库时,显示了错误:

类型为"System"的未处理异常。系统中出现InvalidOperationException。Data.dll

附加信息:ExecuteNonQuery:一个专有的连接não foi inicializada。

你们能帮忙吗?

SqlConnection cn = new SqlConnection(@"Data Source=(LocalDB)'v11.0;AttachDbFilename=C:'basededadospap.mdf;Integrated Security=True;Connect Timeout=30");
        SqlCommand cmd = new SqlCommand();
private void button1_Click(object sender, EventArgs e)
        {
            if (textBox4.Text != "" & textBox2.Text != "")
            {
                {
                    using (var connection = new SqlConnection(@"Data Source=(LocalDB)'v11.0;AttachDbFilename=C:'basededadospap.mdf;Integrated Security=True;Connect Timeout=30"))
                    {
                        cn.Open();
                        cmd.CommandText = "INSERT INTO artigo (nomeartigo,preco) VALUES ('" + textBox4.Text + "','" + textBox2.Text + "')";
                        cmd.ExecuteNonQuery();
                        cmd.Clone();
                        MessageBox.Show(" Artigo inserido com sucesso! ");
                        this.Close();
                    }
                }
            }
        }

类型为';系统InvalidOperationException';发生在系统中.Data.dll-C#vi

因为你没有告诉你的命令使用连接,所以试试这个:

SqlCommand cmd = new SqlCommand(
    "Query String",
    cn);

您必须告诉命令使用哪个连接来查询数据。我看到您的连接名为cn,所以这就是我们必须传递给SQLCommand构造函数的内容。

所以你的完整代码看起来像:

using (SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)'v11.0;AttachDbFilename=C:'basededadospap.mdf;Integrated Security=True;Connect Timeout=30"))
{
    con.Open();
    SqlCommand cmd = new SqlCommand("SELECT TOP 3 * FROM Dogs1 ORDER BY Weight", con);
    cmd.ExecuteNonQuery();
    cmd.Clone();
    MessageBox.Show(" Artigo inserido com sucesso! ");
    this.Close();
}

你注意到我是如何将连接变量传递给SQL命令的吗?

相关文章: