c#通过在数据库增加一个记录失败,并显示异常,参数化查询 '(@birthDay datetime' 需要参数 '@address',但未提供该参数。
//数据库访问根据操作返回结果
public int DataQuaryTwo(string sql, SqlParameter[] parms)
{
SqlCommand cmd = new SqlCommand();
cmd.Connection = getConn();
cmd.CommandText = sql;
foreach (SqlParameter parameter in parms)
{
cmd.Parameters.Add(parameter);
}
return cmd.ExecuteNonQuery();
}
//方法:添加一条学生的记录
public string addStuMess(StuMess stu){
string sql = "insert into tb_student values (@no,@name,@sex,@birthDay,@party,@dept,@prof,@stuClass,@address)"; //"insert into tb_student values"
SqlParameter[] parms = { new SqlParameter("@no", SqlDbType.Char, 50), new SqlParameter("@name", SqlDbType.VarChar, 50), new SqlParameter("@sex", SqlDbType.Char, 50), new SqlParameter("@birthDay", SqlDbType.DateTime, 50), new SqlParameter("@party", SqlDbType.VarChar, 50), new SqlParameter("@dept", SqlDbType.VarChar, 50), new SqlParameter("@prof", SqlDbType.VarChar, 50), new SqlParameter("@stuClass", SqlDbType.VarChar, 50), new SqlParameter("@address", SqlDbType.VarChar, 50) };
parms[0].Value = stu.Id;
parms[1].Value = stu.StuName;
parms[2].Value = stu.Sex;
parms[3].Value = stu.Birthday;
parms[4].Value = stu.Party;
parms[5].Value = stu.Dept;
parms[6].Value = stu.Prof;
parms[7].Value = stu.Cla;
parms[8].Value = stu.Family_adress;
// da.Update(ds.Tables["students"]);
// ds.Tables["students"].AcceptChanges();
int result=db.DataQuaryTwo(sql,parms);
if(result >0){
return "学生信息添加成功";
}
else{
return "学生信息添加失败";
}
}
//展示层:一个添加学生的按钮事件
private void btnAdd_Click(object sender, EventArgs e)
{
Student.StuMess student = new Student.StuMess();
student.Id = txtId.Text.Trim();
student.StuName = txtName.Text.Trim();
string sex;
if (this.radBoy.Checked == true)
{
sex = "男";
}
else
{
sex = "女";
}
student.Sex = sex;
DateTime dateB = Convert.ToDateTime(datBirthday.Text.Trim());
Console.WriteLine( dateB);
student.Birthday = dateB;
student.Party = cmbParty.Text.Trim();
student.Dept = cmbDept.Text.Trim();
student.Prof = cmbProf.Text.Trim();
student.Cla = cmbClass.Text.Trim();
string result = student_bll.addStuMess(student);
if (result == "学生信息添加成功")
{
MessageBox.Show("学生信息添加成功");
}
else if (result == "学生信息添加失败")
{
MessageBox.Show("学生信息添加失败");
}
System.Data.SqlClient.SqlException: 参数化查询 '(@no char(50),@name varchar(50),@sex char(50),@birthDay datetime' 需要参数 '@address',但未提供该参数。