问题描述
我正在尝试更新我的 Student
表中的某个记录,但是同样的异常不断弹出:
System.Data.sqlClient.sqlException: 必须声明标量变量“@sid”
if (conn.State == System.Data.ConnectionState.Closed)
{
conn.open();
String sid = txtSearch.Text;
sqlCommand cmd2 = new sqlCommand("UPDATE [Student] SET [Password] = @pass,[StudentName] = @studName,[Email] = @email,[PhoneNumber] = @number,[Faculty] = @faculty,[Course] = @course WHERE [StudentID] = @sid",conn);
cmd2.Parameters.AddWithValue("@pass",txtPassword.Text);
cmd2.Parameters.AddWithValue("@studName",txtStudentName.Text);
cmd2.Parameters.AddWithValue("@email",txtEmail.Text);
cmd2.Parameters.AddWithValue("@number",txtPhoneNum.Text);
cmd2.Parameters.AddWithValue("@faculty",ddlFaculty.SelectedValue);
cmd2.Parameters.AddWithValue("@course",ddlCourse.SelectedValue);
cmd2.ExecuteNonQuery();
Response.Write("<script>alert('Record updated successfully!')</script>");
conn.Close();
Clear();
}
解决方法
你错过了@sid param
if (conn.State == System.Data.ConnectionState.Closed)
{
conn.Open();
String sid = txtSearch.Text;
SqlCommand cmd2 = new SqlCommand("UPDATE [Student] SET [Password]=@pass,[StudentName]=@studName,[Email]=@email,[PhoneNumber]=@number,[Faculty]=@faculty,[Course]=@course
WHERE [StudentID]=@sid",conn);
cmd2.Parameters.AddWithValue("@pass",txtPassword.Text);
cmd2.Parameters.AddWithValue("@studName",txtStudentName.Text);
cmd2.Parameters.AddWithValue("@email",txtEmail.Text);
cmd2.Parameters.AddWithValue("@number",txtPhoneNum.Text);
cmd2.Parameters.AddWithValue("@faculty",ddlFaculty.SelectedValue);
cmd2.Parameters.AddWithValue("@course",ddlCourse.SelectedValue);
cmd2.Parameters.AddWithValue("@isid",sid); // <------
cmd2.ExecuteNonQuery();
Response.Write("<script>alert('Record updated successfully!')</script>");
conn.Close();
Clear();
}