为什么

        scIns.Parameters.Add(new SqlParameter("@v30", 0.00m));


导致“ @ v30未定义”错误,但是

        decimal dZero = 0.00m;
        scIns.Parameters.Add(new SqlParameter("@v30", dZero));


可以吗?

最佳答案

SqlParamter具有两个参数,两个不同的重载,第一个是字符串,第二个是SqlDbType或对象。

在第一种情况下,当传入0.00m时,它将转换为Int64;在第二种情况下,由于传入的值为十进制类型,因此它使用SqlDbType.Decimal。

看看这个Link

更新:
找到了另一个stackoverflow问题,对此进行了讨论,并提供了详细的答案。 :)

关于c# - 无法识别SqlCommand参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6540422/

10-09 19:26