C# SQLCommand.Parameters.Add-如何给出十进制值大小?

C# SQLCommand.Parameters.Add-如何给出十进制值大小?,c#,sqlparameter,C#,Sqlparameter,您将如何指定: Decimal(18,2) 在这方面: SqlComm.Parameters.Add("@myValue", SqlDbType.Decimal, 0, "myValue"); 目前,我已经从设计端属性定义了precision=2。我只是好奇如何从代码中实现这一点。感谢没有超负荷的Add让您在线设置十进制精度,因此您需要创建一个SQlParameter对象并将其添加到集合中: SqlParameter param = new SqlParameter("@myVal

您将如何指定:

Decimal(18,2)
在这方面:

SqlComm.Parameters.Add("@myValue", SqlDbType.Decimal, 0, "myValue");

目前,我已经从设计端属性定义了
precision=2
。我只是好奇如何从代码中实现这一点。感谢没有超负荷的
Add
让您在线设置十进制精度,因此您需要创建一个SQlParameter对象并将其添加到集合中:

SqlParameter param = new SqlParameter("@myValue", SqlDbType.Decimal);
param.SourceColumn = "myValue";
param.Precision = 18;
param.Scale = 2;
SqlComm.Parameters.Add(param);
或在添加参数后“查找”该参数:

SqlComm.Parameters.Add("@myValue", SqlDbType.Decimal, 0, "myValue");
SqlParameter param = SqlComm.Parameters["@myValue"];
param.Precision = 18;
param.Scale = 2;
或者使用参数构造函数:

SqlComm.Parameters.Add(new SqlParameter(
    parameterName = "@myValue", 
    dbType = SqlDbType.Decimal,
    precision = 18,
    scale = 2,
    sourceColumn = "myValue"));

如果参数值为0,为什么需要额外的精度?精度值指示小数点后的位数,对吗?目前它是0,只是作为此问题的占位符。我只是好奇如何设置(18,2)对于代码中的十进制大小,可以使用<代码>数学>循环> <代码>或在SQL语句中取值为“是”和“圆”。请参阅:关于上面的“NoWror”注释,相关部分是:您不必为输入参数指定精度和比例属性的值,因为它们可以从PAR中推断出来。参数值。添加后无需查找参数,
SqlParameterCollection.Add
返回新创建的参数。
SqlParameter param=SqlComm.Parameters.Add(“@myValue”,SqlDbType.Decimal,0,“myValue”);
在将值分配给
SqlParameter
之前,是否需要设置
精度
比例
属性?@hiFI否-仅在执行查询之前。根据Microsoft文档(请参阅原始帖子中的注释)-您不需要设置输入参数的比例和精度。有没有办法对此解决方案进行一次线性化?