ADO插入命令的截断错误

时间:2014-06-11 13:49:35

标签: c# ado.net truncate

我的列表中的每条记录都有一个foreach循环运行。当我执行它时,它到达ExecuteNonQuery()并抛出此错误:

字符串或二进制数据将被截断。声明已经终止。

我已经检查过以确保该字段可以保存我的值,而L_Number可以为varchar(10) 现在S_O_Number只是int。这可能是问题吗?

这是我运行的导致截断错误的方法。

 foreach (DataGridViewRow dr in dropdeadGridView.Rows)
 {
     bool checkBoxValue = Convert.ToBoolean(dr.Cells[5].Value);
     if (checkBoxValue)
     {
         o.Add(dr.Cells[1].Value.ToString());
     }
 }

 foreach (string num in o)
 {
     SqlConnection dbConn = DBHelper.getConnection();
     try
     {
         using (dbConn)
         {
             SqlCommand addJob = new SqlCommand(@"UPDATE OrderDetail SET L_NUMBER = @L_NUMBER WHERE S_O_NUMBER = @SONumber", dbConn);
             addJob.Parameters.AddWithValue("@SONumber", num);
             addJob.Parameters.AddWithValue("@L_NUMBER", lNumber.Text);
             dbConn.Open();
             addJob.ExecuteNonQuery();//error thrown
         }
         MessageBox.Show("Updated!");
     }
     catch (Exception ex)
     {

throw ex;
     }

上面发生的是它根据复选框选择从我的gridview获取值。将它们放入列表中。然后我运行一个foreach循环来运行列表中的每个值。当数据符合字段大小时,为什么会出现截断错误?

0 个答案:

没有答案