当我执行代码时,会出现此错误消息:
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(str);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "Companyregister";
cmd.Parameters.AddWithValue("@Company_name", txtname.Text);
cmd.Parameters.AddWithValue("@Register_no", txtreg_no.Text);
cmd.Parameters.AddWithValue("@Type", DropDownList1.Text);
cmd.Parameters.AddWithValue("@Address", txtadrs.Text);
cmd.Parameters.AddWithValue("@Email", txtemail.Text);
cmd.Parameters.AddWithValue("@Contact_no", txtphone.Text);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Response.Write("Register succesful");
}
错误:
类型' System.Data.SqlClient.SqlException'的异常发生在System.Data.dll中但未在用户代码中处理
附加信息:字符串或二进制数据将被截断。
声明已经终止。
导致此异常的代码或存储过程出了什么问题?如何解决?
答案 0 :(得分:2)
一个或多个输入值比指定的列长度长。列太小或输入太长。
您可以通过以下两种方式解决问题:
将输入始终传递给SQL
cmd.Parameters.AddWithValue("@Company_name", txtname.Text.Substring(0, COLUMN_LENGTH));
答案 1 :(得分:0)
您尝试插入的数据(字符串或二进制)长于目标字段可能的最大长度。
答案 2 :(得分:-1)
检查数据库表中列/字段的大小。我猜,其中一个表字段的定义不足以保存传递的值。