次の方法で共有


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

注釈

プロパティはScale、または TimeDecimalDateTime2DateTimeOffsetパラメーターSqlDbTypeで使用されます。

警告

プロパティが明示的に指定されておらず、サーバー上の Scale データがスケール 0 (既定値) に収まらない場合は、データが切り捨てられる可能性があります。
型の DateTime2 場合、スケール 0 (既定値) は datetime2(7) として渡されます。 現在、datetime2(0) としてパラメーターを送信する方法はありません。 1 から 7 の作業を想定どおりにスケーリングします。 この問題は、 と Time にもDateTimeOffset適用されます。

パラメーター値から推論できるため、入力パラメーターの Precision プロパティと Scale プロパティの値を指定する必要はありません。 PrecisionScale は、出力パラメーターと、特定の有効桁数と小数点以下桁数で null 値を指定するなど、値を示さずにパラメーターの完全なメタデータを指定する必要があるシナリオで必要です。

注意

このプロパティを使用して、データベースに渡されるデータを強制することはサポートされていません。 データをデータベースに渡す前に丸めたり、切り捨てたり、強制したりする場合は、パラメーターValueの プロパティに値を割り当てる前に、名前空間のSystem一部である クラスを使用Mathします。

注意

.NET Framework バージョン 1.0 に含まれるデータ プロバイダー.NET Framework、パラメーター値の Decimal または ScalePrecision検証されません。 これにより、切り捨てられたデータがデータ ソースに挿入される可能性があります。 バージョン 1.0 .NET Framework使用している場合は、パラメーター値を設定するPrecision前に、 と SqlParameterDecimal値を検証します。 Scale パラメータースケールを Decimal 超える値は切り捨てられます。

適用対象

こちらもご覧ください