SQLCommand.Parameters.Add - 如何给出十进制值的大小?
SQLCommand.Parameters.Add - How to give decimal value size?
你会如何指定这个:
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);
或者在添加参数后保留对参数的引用:
SqlParameter param = SqlComm.Parameters.Add("@myValue", SqlDbType.Decimal, 0, "myValue");
param.Precision = 18;
param.Scale = 2;
或者使用参数构造函数:
SqlComm.Parameters.Add(new SqlParameter(
parameterName = "@myValue",
dbType = SqlDbType.Decimal,
precision = 18,
scale = 2,
sourceColumn = "myValue"));
var cmd = new SqlCommand()
SetDecimalParameter(cmd.Parameters.Add("@paramName", SqlDbType.Decimal), 18, 2).Value = 12.34;
SqlParameter SetDecimalParameter(SqlParameter parameter, byte precision, byte scale) {
parameter.Precision = precision;
parameter.Scale = scale;
return parameter;
}
你会如何指定这个:
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);
或者在添加参数后保留对参数的引用:
SqlParameter param = SqlComm.Parameters.Add("@myValue", SqlDbType.Decimal, 0, "myValue");
param.Precision = 18;
param.Scale = 2;
或者使用参数构造函数:
SqlComm.Parameters.Add(new SqlParameter(
parameterName = "@myValue",
dbType = SqlDbType.Decimal,
precision = 18,
scale = 2,
sourceColumn = "myValue"));
var cmd = new SqlCommand()
SetDecimalParameter(cmd.Parameters.Add("@paramName", SqlDbType.Decimal), 18, 2).Value = 12.34;
SqlParameter SetDecimalParameter(SqlParameter parameter, byte precision, byte scale) {
parameter.Precision = precision;
parameter.Scale = scale;
return parameter;
}