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