通过


SqlParameter.Scale 属性

定义

获取或设置解析到的小 Value 数位数。

public:
 property System::Byte Scale { System::Byte get(); void set(System::Byte value); };
public byte Scale { get; set; }
[System.Data.DataSysDescription("DbDataParameter_Scale")]
public byte Scale { get; set; }
member this.Scale : byte with get, set
[<System.Data.DataSysDescription("DbDataParameter_Scale")>]
member this.Scale : byte with get, set
Public Property Scale As Byte

属性值

解析到的小 Value 数位数。 默认值为 0。

实现

属性

示例

以下示例创建 SqlParameter 并设置其一些属性。

static void CreateSqlParameterPrecisionScale()
{
    SqlParameter parameter = new SqlParameter("Price", SqlDbType.Decimal);
    parameter.Value = 3.1416;
    parameter.Precision = 8;
    parameter.Scale = 4;
}
Private Sub CreateSqlParameterPrecisionScale()
    Dim parameter As New SqlParameter("Price", SqlDbType.Decimal)
    parameter.Value = 3.1416
    parameter.Precision = 8
    parameter.Scale = 4
End Sub

注解

属性由具有 <a0/> 或 /> 的参数使用。

警告

如果未 Scale 显式指定属性,并且服务器上的数据不适合缩放 0(默认值),则可能会截断数据。 DateTime2对于类型,缩放 0(默认值)将作为 datetime2(7)传递。 目前无法将参数作为 datetime2(0)发送。 按预期缩放 1-7。 此问题也适用于此类Time问题DateTimeOffset

无需为输入参数指定值 PrecisionScale 属性,因为可以从参数值推断它们。 输出 参数和需要为参数指定完整元数据而不指示值的方案(例如,指定具有特定精度和小数位数的 null 值)时,需要使用 < a0/>。

注释

不支持使用此属性强制传递给数据库的数据。 若要在将数据传递给数据库之前对其进行舍入、截断或其他强制数据,请使用 Math 命名空间中的 System 类,然后再将值分配给参数 Value 的属性。

注释

.NET Framework 版本 1.0 附带的 .NET Framework 数据提供程序不会验证Precision参数值或ScaleDecimal参数值。 这可能会导致在数据源中插入截断的数据。 如果使用 .NET Framework 版本 1.0,请在Precision设置参数值之前验证值和SqlParameterDecimal值。 Scale 超出 Decimal 参数刻度的值仍将被截断。

适用于

另请参阅