Freigeben über


SqlParameter.Scale Eigenschaft

Definition

Ruft die Anzahl der Dezimalstellen ab, in die Value aufgelöst wird, oder legt diese fest.

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

Eigenschaftswert

Die Anzahl der Dezimalstellen, mit der Value aufgelöst wird. Die Standardeinstellung ist 0.

Implementiert

Attribute

Beispiele

Im folgenden Beispiel wird ein SqlParameter erstellt und einige seiner Eigenschaften festgelegt.

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

Hinweise

Die Scale -Eigenschaft wird von Parametern verwendet, die über , SqlDbTypeDateTime2Decimal, DateTimeOffsetoder Timeverfügen.

Warnung

Daten werden möglicherweise abgeschnitten, wenn die Scale Eigenschaft nicht explizit angegeben wird und die Daten auf dem Server nicht in die Skalierung 0 (Standard) passen.
Für den DateTime2 Typ wird Skalierung 0 (Standard) als datetime2(7) übergeben. Es gibt derzeit keine Möglichkeit, einen Parameter als datetime2(0) zu senden. Skaliert die Arbeit 1 bis 7 wie erwartet. Dieses Problem gilt auch für DateTimeOffset und Time .

Sie müssen keine Werte für die Precision Eigenschaften und Scale für Eingabeparameter angeben, da sie aus dem Parameterwert abgeleitet werden können. Precision und Scale sind für Ausgabeparameter und für Szenarien erforderlich, in denen Sie vollständige Metadaten für einen Parameter angeben müssen, ohne einen Wert anzugeben, z. B. das Angeben eines NULL-Werts mit einer bestimmten Genauigkeit und Skalierung.

Hinweis

Die Verwendung dieser Eigenschaft zum Coerce-Daten, die an die Datenbank übergeben werden, wird nicht unterstützt. Um Daten vor der Übergabe an die Datenbank zu runden, abzuschneiden oder anderweitig zu koerzieren, verwenden Sie die Math Klasse, die Teil des System Namespaces ist, bevor Sie der Eigenschaft des Value Parameters einen Wert zuweisen.

Hinweis

.NET Framework Datenanbieter, die in der .NET Framework Version 1.0 enthalten sind, überprüfen die Precision Parameterwerte oder ScaleDecimal nicht. Dies kann dazu führen, dass abgeschnittene Daten in die Datenquelle eingefügt werden. Wenn Sie .NET Framework Version 1.0 verwenden, überprüfen Sie die Precision Werte und SqlParameter , Decimal bevor Sie den Parameterwert festlegen. Scale Werte, die die Decimal Parameterskala überschreiten, werden weiterhin abgeschnitten.

Gilt für:

Weitere Informationen