参数化查询 明明写了参数但是仍然报 未提供该参数

方法如下:

string sql = @"update Finance_RefundList set
ProductNumber=@ProductNumber,RefundMoney=@RefundMoney,
ModifyDate=@ModifyDate,Modifier=@Modifier,Enable=@Enable,DeleteBy=@DeleteBy
where Refund_Id=@Refund_Id and OitemId=@OitemId";
SqlParameter[] para = new SqlParameter[]
{
new SqlParameter("@ProductNumber",ProductNumber),
new SqlParameter("@RefundMoney",RefundMoney),
new SqlParameter("@Refund_Id",Refund_Id),
new SqlParameter("@OitemId",OitemId),
new SqlParameter("@ModifyDate",DateTime.Now),
new SqlParameter("@Modifier",Modifier),
new SqlParameter("@Enable",0),
new SqlParameter("@DeleteBy",null)
};
return idataHelperWMSys_AfterService.ExecuteNonQuery(CommandType.Text, sql, para);
错误信息:
{"参数化查询 '(@ProductNumber nvarchar(1),@RefundMoney decimal(6,4),@Refund_Id' 需要参数 '@Enable',但未提供该参数。"}
求帮助呀~

new SqlParameter("@Enable",0),
更改为new SqlParameter("@Enable","0"),
0比较特殊,除0之外的其他int类型数值就不需要转换。
我暂时也没有找到原因,你知道答案的话可以共享一下。

 不能这么写,如果要更新多个字段,应该用
update 表(字段1, 字段2, ...) values (值1, 值2, ...) where ...