ananth2012 Ответов: 3

как очистить эту ошибку ExecuteNonQuery: свойство соединения не было инициализировано при вставке значений в базу данных


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);
        }

3 Ответов

Рейтинг:
1

Abhi KA

вы можете напрямую позвонить подключения.Открыть()

потому что это статический метод.


Рейтинг:
0

Mario Majčica

Ну попробуй что нибудь подобное:

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;
        }
    }
}



Этот пример прекрасно работает. Адаптируйте свой код и, если таковой имеется, сообщите нам об этом.

Овации


infobeena

очень полезно.

Рейтинг:
0

uspatel

Воспользуйся

Connection.cmd.Connection=Connection.con;


как
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();