นำข้อมูลใน gridview บันทึกลงฐานข้อมูลไม่ได้ครับ เกิด error String or binary data would be truncated. the statement has been terminated
ผมจะนำข้อมูลจาก gridview บันทึกลงฐานข้อมูล ผมใช้ foreach วนเก็บค่าในgridview ที่ละบรรทัดแล้วบันทึกลงฐานข้อมูล
Code (C#)
SqlCommand com = new SqlCommand();
com.CommandText = "INSERT INTO Process (Proc_Name,Proc_Objective,Proc_Dept,Proc_Type,Proc_IT_Type,Proc_IT_Order,Proc_Dept_Type,Proc_Dept_Order,Proc_Mandays,Proc_User,Proc_Timestamp,Action_Flag) VALUES (@Proc_Name,@Proc_Objective,@Proc_Dept,@Proc_Type,@Proc_IT_Type,@Proc_IT_Order,@Proc_Dept_Type,@Proc_Dept_Order,@Proc_Mandays,@Proc_User,@Proc_Timestamp,@Action_Flag)";
com.Connection = conn;
foreach (GridViewRow row in GridView1.Rows)
{
var name = row.FindControl("lblname") as Label;
var obj = row.FindControl("lblobj") as Label;
var dept = row.FindControl("lbldept") as Label;
var type = row.FindControl("lbltype") as Label;
var it_type = row.FindControl("it_type") as Label;
var it_order = row.FindControl("lblit_order") as Label;
var dept_type = row.FindControl("lbldept_type") as Label;
var dept_order = row.FindControl("lbldept_order") as Label;
var manday = row.FindControl("lblmanday") as Label;
com.Parameters.Add("@Proc_Name", SqlDbType.VarChar).Value = name.ToString();
com.Parameters.Add("@Proc_Objective", SqlDbType.VarChar).Value = obj.ToString();
com.Parameters.Add("@Proc_Dept", SqlDbType.VarChar).Value = dept.ToString();
com.Parameters.Add("@Proc_Type", SqlDbType.Char).Value = type.ToString();
com.Parameters.Add("@Proc_IT_Type", SqlDbType.Char).Value = it_type.ToString();
com.Parameters.Add("@Proc_IT_Order", SqlDbType.Int).Value = Int32.Parse(it_order.Text.Trim());
com.Parameters.Add("@Proc_Dept_Type", SqlDbType.Char).Value = dept_type.ToString();
com.Parameters.Add("@Proc_Dept_Order", SqlDbType.Int).Value = Int32.Parse(dept_order.Text.Trim());
com.Parameters.Add("@Proc_Mandays", SqlDbType.Decimal).Value = decimal.Parse(manday.Text.Trim());
com.Parameters.Add("@Proc_User", SqlDbType.VarChar).Value = Session["userAuthentication"].ToString();
com.Parameters.Add("@Proc_Timestamp", SqlDbType.DateTime).Value = DateTime.Now.ToString("G");
com.Parameters.Add("@Action_Flag", SqlDbType.Char).Value = "1";
conn.Open();
com.ExecuteNonQuery();
conn.Close();
}
แต่มันแจ้ง error ว่า String or binary data would be truncated. the statement has been terminated ผมหาจุดผิดไม่เจอครับTag : .NET, Web (ASP.NET), C#
Date :
2013-04-25 11:20:40
By :
funny2008
View :
1179
Reply :
2
Error นี้เกิดจากชนิดของข้อมูลผิดพลาดครับ เช่น รับค่า number แต่ไปใส่ String หรือกำหนด Varchar(50) แต่ Insert ไป 60 ประมาณนี้ครับ
Date :
2013-04-25 11:34:18
By :
mr.win
ได้แล้วครับขอบคุณมากครับ
Date :
2013-04-25 11:54:17
By :
funny2008
Load balance : Server 04