.NET Framework 4.0
中的 System.Data.Common.DbParameter
类并没有直接提供 Scale
属性。Scale
属性是在 .NET Framework 4.5
中添加到 DbParameter
类的。Scale
属性用于设置或获取参数的小数点后的位数。
如果你的确需要设置小数点后的位数,你可以通过一些变通的方法来实现,例如:
如果你使用的是 SQL Server 数据库,可以使用 SqlParameter
的特定属性 Precision
和 Scale
,这两个属性在 .NET Framework 4.0
中就已经存在。
下面是一个示例代码,演示如何在 .NET Framework 4.0
中使用 Size
属性来设置参数的小数点后位数:
/ 创建一个 SqlParameter 对象
SqlParameter parameter = new SqlParameter();
// 设置参数的名称
parameter.ParameterName = "@value";
// 设置参数的数据类型和大小
parameter.SqlDbType = SqlDbType.Decimal;
parameter.Size = 10; // 小数点前5位,小数点后4位(假设总共有10位)
或者直接转换:DbParameter
是SqlParameter的基类
/// <summary>
/// 添加输出参数
/// </summary>
/// <param name="name">参数名称</param>
/// <param name="typeName">参数类型</param>
/// <returns>查询</returns>
public OutputQuery AddOutParameter(string name, string typeName)
{
var p = dbCmd.CreateParameter();
p.DbType = (DbType)Enum.Parse(typeof(DbType), typeName);
if (p.DbType == DbType.String)//返回字符串,必须指定长度
{
p.Size = 50;
}
if (p.DbType == DbType.Decimal)//decimal 保留多少分小数点
{
SqlParameter sqlParam = (SqlParameter)p;
sqlParam.Scale = 2;
}
p.ParameterName = "@" + name;
p.Direction = ParameterDirection.Output;
dbCmd.Parameters.Add(p);
outputParameters.Add(name, p);
return this;
}