Как решить, нужно ли объявлять скалярную переменную в команде SQL insert?
protected void Add_Click(object sender, EventArgs e) { string constr = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString; SqlConnection con = new SqlConnection(constr); //SqlCommand cmd = new SqlCommand("insert into Student values('" + RegNo.Text + "','" + Name.Text + "','" + Address.Text + "')"); SqlCommand cmd = new SqlCommand("insert into Student(@RegNo,@Name,@Address,@CreatedTime) values(@RegNo,@Name,@Address,Getdate())"); cmd.Connection = con; con.Open(); cmd.ExecuteNonQuery(); con.Close(); }
Что я уже пробовал:
здесь я пытаюсь вставить записи . у меня есть 3 текстовых поля,а именно RegNo,Name,Address,и в моей таблице у меня есть $ columns RegNo,Name, Address, CreatedTime. в моем коде возникла следующая ошибка .
Необходимо объявить скалярную переменную @RegNo .
что же делать?
Richard Deeming
В дополнение к решению 1 у вас также есть синтаксическая ошибка в вашем SQL-операторе. Так и должно быть:
insert into Student(RegNo,Name,Address,CreatedTime) values(@RegNo,@Name,@Address,Getdate())Первый список в скобках-это список столбцов, в которые вы вставляете данные. Путем префикса их с помощью
@
вместо этого вы пытаетесь использовать значения параметров.