我正在使用存储过程来更新寄售编号= @consignmentnumber的列中的行。
这是代码的屏幕。 我想我错过了一些东西,但我无法解决,我实际上已经失踪了,有人可以帮忙吗?
protected void BtnReceived_Click(object sender, EventArgs e)
{
IncrementStatusOfConsignment(sender);
}
private static void IncrementStatusOfConsignment(object sender)
{
var button = (Button) sender;
var gridviewrow = (GridViewRow) button.Parent.Parent;
var consignmentnumber = gridviewrow.Cells[3].Text;
using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["Test"].ConnectionString))
{
con.Open();
using (var cmd = new SqlCommand("Test", con))
{
cmd.CommandType = CommandType.StoredProcedure;
var sqlparam = cmd.Parameters.Add("@consignmentnumber", SqlDbType.VarChar);
sqlparam.Value = consignmentnumber;
cmd.ExecuteNonQuery();
}
}
}
谁能告诉我哪里出错或者我错过了什么?
我不断收到此错误:
如果我将参数设置为Int,它仍然无效。
答案 0 :(得分:1)
如果您已将列consignmentnumber
声明为数字(18,0),那么
var sqlparam = cmd.Parameters.Add("@consignmentnumber", SqlDbType.Decimal);
sqlparam.Value = consignmentnumber;
或类似的东西:
var sqlparam = cmd.Parameters.Add("@consignmentnumber", SqlDbType.NVarChar, 18);
sqlparam.Value = consignmentnumber;