如何清除此错误ExecuteNonQuery:在将值插入数据库时​​尚未初始化Connection属性 [英] how to clear this error ExecuteNonQuery: Connection property has not been initialized while insert values into database

查看:142
本文介绍了如何清除此错误ExecuteNonQuery:在将值插入数据库时​​尚未初始化Connection属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

class Connection
    {
        public static SqlConnection con = new SqlConnection("Data Source=SYSTEM2\\SQLEXPRESS;Initial Catalog=library;Integrated Security=True");
        public static SqlCommand cmd = new SqlCommand();
        public static SqlDataReader dr;
        public static SqlDataAdapter da;
        public static void Open()
    {
        con.Open();
        cmd = con.CreateCommand();
        cmd.CommandType = System.Data.CommandType.StoredProcedure;
    }
        public static void Close()
        {
            cmd = null;
            con.Close();
        }

private void button1_Click(object sender, EventArgs e)
        {
            Connection.con.Open();
            Connection.cmd.CommandText = "INSERT_REG";
            Connection.cmd.Parameters.AddWithValue("@ID",textBox1.Text);
            Connection.cmd.Parameters.AddWithValue("@NAME", textBox2.Text);
            Connection.cmd.Parameters.AddWithValue("@ADDRESS", textBox3.Text);
            Connection.cmd.Parameters.AddWithValue("@CONTACT", textBox4.Text);
            Connection.cmd.ExecuteNonQuery();
            Connection.con.Close();
            MessageBox.Show("REGISTRATION SUCCESSFULLY", "INFORMATION", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);
        }

推荐答案

你可以直接拨打Connection.Open()



因为它是静态方法。
u can directly call Connection.Open()

because it is a static method.


尝试类似的东西:

Well try something similar:
public static int ExecuteMyQuery(int p1, int p2, int p3, int p4)
{
    string connString = @"Data Source=SYSTEM2\SQLEXPRESS;Initial Catalog=library;Integrated Security=True";

    using (SqlConnection cn = new SqlConnection(connString))
    {
        using (SqlCommand cmd = new SqlCommand("sp_MyStored", cn))
        {
            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.Add("@p1", SqlDbType.Int).Value = p1;
            cmd.Parameters.Add("@p2", SqlDbType.Int).Value = p2;
            cmd.Parameters.Add("@p3", SqlDbType.Int).Value = p3;
            cmd.Parameters.Add("@p4", SqlDbType.Int).Value = p4;
            cmd.Parameters.Add("@retVal", SqlDbType.Int).Direction = ParameterDirection.Output;

            cn.Open();
            cmd.ExecuteNonQuery();

            return (int)cmd.Parameters["@retVal"].Value;
        }
    }
}







这个例子工作正常。调整你的代码,如果有的话请告诉我们。



干杯




This example works fine. Adapt your code and if any let us know.

Cheers


使用

Use
Connection.cmd.Connection=Connection.con;





as



as

Connection.cmd.Connection=Connection.con;
Connection.cmd.Parameters.AddWithValue("@ID",textBox1.Text);
                  Connection.cmd.Parameters.AddWithValue("@NAME", textBox2.Text);
                  Connection.cmd.Parameters.AddWithValue("@ADDRESS", textBox3.Text);
                  Connection.cmd.Parameters.AddWithValue("@CONTACT", textBox4.Text);
                  Connection.cmd.ExecuteNonQuery();


这篇关于如何清除此错误ExecuteNonQuery:在将值插入数据库时​​尚未初始化Connection属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆