SqlParameter.Scale Propriedade

Definição

Obtém ou define o número de casas decimais para as quais Value é resolvido.

public:
 property System::Byte Scale { System::Byte get(); void set(System::Byte value); };
[System.Data.DataSysDescription("DbDataParameter_Scale")]
public byte Scale { get; set; }
public byte Scale { get; set; }
[<System.Data.DataSysDescription("DbDataParameter_Scale")>]
member this.Scale : byte with get, set
member this.Scale : byte with get, set
Public Property Scale As Byte

Valor de Propriedade

O número de casas decimais para os quais Value é resolvido. A predefinição é 0.

Implementações

Atributos

Exemplos

O exemplo seguinte cria um SqlParameter e define algumas das suas propriedades.

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

Observações

A Scale propriedade é usada por parâmetros que têm um SqlDbType de Decimal, DateTime2, DateTimeOffset, ou Time.

Warning

Os dados podem ser truncados se a Scale propriedade não for explicitamente especificada e os dados no servidor não se enquadrarem na escala 0 (o padrão). Para o DateTime2 tipo, a escala 0 (o padrão) será passada como datetime2(7). Atualmente, não há forma de enviar um parâmetro como datetime2(0). As escalas 1-7 funcionam como esperado. Este problema aplica-se também a DateTimeOffset e Time também.

Não é necessário especificar valores para as Precision propriedades e Scale dos parâmetros de entrada, pois podem ser inferidos a partir do valor do parâmetro. Precision e Scale são necessárias para parâmetros de saída e para cenários onde é necessário especificar metadados completos para um parâmetro sem indicar um valor, como especificar um valor nulo com precisão e escala específicas.

Note

A utilização desta propriedade para coagir dados passados para a base de dados não é suportada. Para arredondar, truncar ou de outra forma coagir dados antes de os passar para a base de dados, use a Math classe que faz parte do System namespace antes de atribuir um valor à propriedade do Value parâmetro.

Note

.NET fornecedores de dados do Framework incluídos na versão 1.0 do .NET Framework não verificam o Precision ou Scale dos valores do parâmetro Decimal. Isto pode fazer com que dados truncados sejam inseridos na fonte de dados. Se estiver a usar .NET Framework versão 1.0, valide o Precision e SqlParameter dos valores Decimal antes de definir o valor do parâmetro. Scale valores que excedem a Decimal escala de parâmetros continuam truncados.

Aplica-se a

Ver também