1.ExecuteNonQuery:连接属性尚未初始化“。 2.这是我执行以下代码的错误。
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection();
conn.ConnectionString = @"Data Source=Sadiq;Initial Catalog=rafi;Integrated Security=True";
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "student";
int studid = Convert.ToInt32(TextBox1.Text);
string name = TextBox2.Text;
int age = Convert.ToInt32(TextBox3.Text);
string school = TextBox4.Text;
string clas = TextBox5.Text;
int marks = Convert.ToInt32(TextBox6.Text);
string grade = TextBox7.Text;
cmd.Parameters.Add(new SqlParameter("@stud_id", studid));
cmd.Parameters.Add(new SqlParameter("@name", name));
cmd.Parameters.Add(new SqlParameter("@age", age));
cmd.Parameters.Add(new SqlParameter("@school", school));
cmd.Parameters.Add(new SqlParameter("@class", clas));
cmd.Parameters.Add(new SqlParameter("@marks", marks));
cmd.Parameters.Add(new SqlParameter("@grade", grade));
cmd.ExecuteNonQuery();
conn.Close();
}
答案 0 :(得分:5)
你需要这样做:
cmd.Connection = conn;
在执行查询之前。它需要一个连接来执行。
您还可以将其重构为:
SqlCommand cmd = new SqlCommand("student", conn);
cmd.CommandType = CommandType.StoredProcedure;
而不是:
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "student";
cmd.Connection = conn;
该重载通过构造函数设置CommandText
和Connection
属性。
您还需要在using
语句中包装所有这些ADO.NET对象。我在blog post of mine上详细解释。