次の方法で共有


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 プロパティは、DecimalDateTime2DateTimeOffset、またはTimeSqlDbTypeを持つパラメーターによって使用されます。

Warnung

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

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

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

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

適用対象

こちらもご覧ください