无法让我的更新工作

时间:2014-04-30 07:29:13

标签: c# asp.net sql

我正在使用存储过程来更新寄售编号= @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();
        }
    }
}

谁能告诉我哪里出错或者我错过了什么?

我不断收到此错误: error

如果我将参数设置为Int,它仍然无效。

1 个答案:

答案 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;