请高手帮忙看下,谢谢。提示“将截断字符串或二进制数据。语句已终止。”错误。 private void btnAdd_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("data source=.;initial catalog=school;integrated security=true"); conn.Open(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; string strCommand = "insert into student values ('@xuehao','@name','@age','@sex')"; cmd.CommandText = strCommand; SqlParameter p4 = new SqlParameter("@xuehao", SqlDbType.VarChar, 10); cmd.Parameters.Add(p4); cmd.Parameters["@xuehao"].Value = Convert.ToString(txtXuehao.Text.Trim()); SqlParameter p1 = new SqlParameter("@name", SqlDbType.VarChar, 10); cmd.Parameters.Add(p1); cmd.Parameters["@name"].Value = Convert.ToString(txtName.Text.Trim()); SqlParameter p2 = new SqlParameter("@age", SqlDbType.VarChar, 10); cmd.Parameters.Add(p2); cmd.Parameters["@age"].Value = Convert.ToString(txtAge.Text.Trim()); SqlParameter p3 = new SqlParameter("@sex", SqlDbType.VarChar, 10); cmd.Parameters.Add(p3); cmd.Parameters["@sex"].Value = Convert.ToString(txtSex.Text.Trim()); int i = cmd.ExecuteNonQuery(); if (i == 0) MessageBox.Show("添加成功!"); else MessageBox.Show("添加失败"); }int i = cmd.ExecuteNonQuery(); 错误提示出现在在这里。数据库中,xuehao,name,sex 长度10,age长度2 数据类型都是nchar,在数据库中 改了,还是不行,这句话有没有问题string strCommand = "insert into student values ('@xuehao','@name','@age','@sex')";
@xuehao的数据类型是什么? SqlParameter p4 = new SqlParameter("@xuehao", SqlDbType.VarChar, 10);的话,要确保@xuehao,是好是字符串类型,而且长度是 10 位以下才行。 其它几项也是如此。 那么确定一下你填入的值的长度都是不操作10位。txtXuehao.Text.Trim()txtName.Text.Trim()txtSex.Text.Trim())你填的时候不能操作10位txtAge.Text.Trim())不能操作2位,并且把 SqlParameter p3 = new SqlParameter("@sex", SqlDbType.VarChar, 10);改为 SqlParameter p3 = new SqlParameter("@sex", SqlDbType.VarChar, 2);