SqlParameter.Scale Egenskap

Definition

Hämtar eller anger antalet decimaler som Value har lösts.

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

Egenskapsvärde

Antalet decimaler som Value matchas. Standardvärdet är 0.

Implementeringar

Attribut

Exempel

I följande exempel skapas en SqlParameter och vissa av dess egenskaper anges.

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

Kommentarer

Egenskapen Scale används av parametrar som har en SqlDbType av Decimal, DateTime2, DateTimeOffseteller Time.

Varning

Data kan trunkeras om egenskapen inte uttryckligen Scale anges och data på servern inte får plats i skala 0 (standard). För typen DateTime2 skickas skalning 0 (standard) som datetime2(7). Det finns för närvarande inget sätt att skicka en parameter som datetime2(0). Skalar 1–7 arbete som förväntat. Det här problemet gäller även för DateTimeOffset och Time .

Du behöver inte ange värden för Precision egenskaperna och Scale för indataparametrarna, eftersom de kan härledas från parametervärdet. Precision och Scale krävs för utdataparametrar och för scenarier där du behöver ange fullständiga metadata för en parameter utan att ange ett värde, till exempel att ange ett null-värde med en specifik precision och skala.

Note

Användning av den här egenskapen för att tvinga data som skickas till databasen stöds inte. Om du vill avrunda, trunkera eller på annat sätt tvinga data innan de skickas till databasen använder du klassen Math som ingår i System namnområdet innan du tilldelar parameterns Value egenskap ett värde.

Note

.NET Framework-dataprovidrar som ingår i .NET Framework version 1.0 kontrollerar inte parametervärdena Precision eller Scale av Decimal. Detta kan göra att trunkerade data infogas i datakällan. Om du använder .NET Framework version 1.0 kontrollerar du värdena Precision och SqlParameter av Decimal innan du anger parametervärdet. Scale värden som överskrider Decimal parameterskalan trunkeras fortfarande.

Gäller för

Se även