我有一个使用多个输入参数的存储过程并将它们插入到Sql Database中。一个参数@CustomerId存在问题,当插入数据库时会被截断(但不总是)。
C#:
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@CustomerId", Convert.ToInt32(customerId));
cmd.Connection = sqlConn;
sqlConn.Open();
cmd.ExecuteNonQuery();
sqlConn.Close();
Sql SP: @CustomerId int
INSERT INTO dbo.tblOffers
(CustomerId)
VALUES
(@CustomerId)
sql table数据类型:
CustomerId int not null
示例:564276117截断为4276117(但它不会一直发生,并且正确插入的值大于560000000) 我究竟做错了什么?感谢
答案 0 :(得分:0)
尝试使用Parameters.Add()
方法代替AddWithValue
。
cmd.Parameters.Add("@CustomerId",SqlDbType.Int).Value=CustomerID;
答案 1 :(得分:-1)
请尝试如下:使用ToInt64
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@CustomerId", Convert.ToInt64(customerId));
cmd.Connection = sqlConn;
sqlConn.Open();
cmd.ExecuteNonQuery();
sqlConn.Close();