SqlParameter.Scale プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
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 プロパティは、Decimal、DateTime2、DateTimeOffset、またはTimeのSqlDbTypeを持つパラメーターによって使用されます。
Warnung
Scale プロパティが明示的に指定されておらず、サーバー上のデータがスケール 0 (既定値) に収まらない場合は、データが切り捨てられる可能性があります。
DateTime2型の場合、スケール 0 (既定値) は datetime2(7) として渡されます。 現在、datetime2(0) としてパラメーターを送信する方法はありません。 1 から 7 の作業を想定どおりにスケーリングします。
この問題は、 DateTimeOffset と Time にも当てはまります。
パラメーター値から推論できるため、入力パラメーターの Precision プロパティと Scale プロパティの値を指定する必要はありません。
Precision および Scale は、出力パラメーターと、特定の有効桁数と小数点以下桁数で null 値を指定するなど、値を示さずにパラメーターの完全なメタデータを指定する必要があるシナリオで必要です。
注
このプロパティを使用して、データベースに渡されるデータを強制することはできません。 データをデータベースに渡す前に丸めたり、切り捨てたり、強制したりするには、パラメーターの Value プロパティに値を割り当てる前に、System名前空間の一部である Math クラスを使用します。
注
.NET Framework バージョン 1.0 に含まれる .NET Framework データ プロバイダーは、パラメーター値のPrecisionまたはScaleDecimal検証しません。 これにより、切り捨てられたデータがデータ ソースに挿入される可能性があります。 .NET Framework バージョン 1.0 を使用している場合は、パラメーター値を設定する前に、Decimal値のPrecisionとSqlParameterを検証します。 Scale Decimalパラメータースケールを超える値は切り捨てられます。