Freigeben über


SqlParameter.Scale Eigenschaft

Definition

Ruft die Anzahl der Dezimalstellen ab, auf die aufgelöst wird, Value 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, an die Value aufgelöst wird. Der Standardwert lautet 0.

Implementiert

Attribute

Beispiele

Im folgenden Beispiel wird ein SqlParameter Teil seiner Eigenschaften erstellt und 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 eine SqlDbType von Decimal, DateTime2, , DateTimeOffsetoder Time.

Warnung

Daten können abgeschnitten werden, wenn die Scale Eigenschaft nicht explizit angegeben ist und die Daten auf dem Server nicht in die Skalierung 0 passen (Standardeinstellung). 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 1-7 Arbeit wie erwartet. Dieses Problem gilt auch für DateTimeOffset und Time auch.

Sie müssen keine Werte für die Precision Und Scale Eigenschaften für Eingabeparameter angeben, da sie vom 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 Nullwerts mit einer bestimmten Genauigkeit und Skalierung.

Hinweis

Die Verwendung dieser Eigenschaft zum Koerzen von Daten, die an die Datenbank übergeben werden, wird nicht unterstützt. Verwenden Sie Math die Klasse, die Teil des System Namespace ist, bevor Sie sie an die Datenbank übergeben, um Daten abzuschneiden oder anderweitig zu verketten, bevor Sie der Eigenschaft des Parameters Value einen Wert zuweisen.

Hinweis

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

Gilt für:

Weitere Informationen