Partilhar via


Conjunto de localidade para tipos de dados

TypeName

SetLocaleForDataTypes

CheckId

CA1306

Category (Categoria)

Microsoft.globalização

Quebrando alterar

Não separável

Causa

Um método ou construtor criado um ou mais System.Data.DataTable ou System.Data.DataSet instâncias e não explicitamente fez conjunto (a propriedade) localidadeDataTable.Locale ou DataSet.Locale).

Descrição da regra

A localidade determina sistema autônomo elementos da apresentação específicos da cultura para dados, sistema autônomo formatação usado para valores numéricos, símbolos de moeda e ordem de classificar.Quando você cria um DataTable ou DataSet, você deve conjunto explicitamente a localidade. Por padrão, a localidade para esses tipos de é a cultura corrente.Para dados que são armazenados em um arquivo ou banco de dados e são compartilhados globalmente, a localidade normalmente deve ser definida para a cultura invariável (CultureInfo.InvariantCulture). Quando dados são compartilhados entre culturas, usando a localidade padrão pode causar o Sumário do DataTable ou DataSet a ser apresentados ou interpretados incorretamente.

Como corrigir violações

Para corrigir uma violação dessa regra, conjunto explicitamente a localidade para o DataTable ou DataSet.

Quando suprimir avisos

É seguro eliminar um aviso da regra quando a biblioteca ou aplicativo é para um audiência limitado de local, os dados não estão compartilhados ou a configuração padrão produz o comportamento desejado em todos os cenários com suporte.

Exemplo

O exemplo a seguir cria dois DataTable instâncias.

using System;
using System.Data;
using System.Globalization;

namespace GlobalLibrary
{
    public class MakeDataTables
    {
        // Violates rule: SetLocaleForDataTypes.
        public DataTable MakeBadTable()
        {
            DataTable badTable = new DataTable("Customers");
            DataColumn keyColumn = badTable.Columns.Add("ID", typeof(Int32));
            keyColumn.AllowDBNull = false;
            keyColumn.Unique = true;
            badTable.Columns.Add("LastName", typeof(String));
            badTable.Columns.Add("FirstName", typeof(String));
            return badTable;
        }

        public DataTable MakeGoodTable()
        {
            DataTable goodTable = new DataTable("Customers");
            // Satisfies rule: SetLocaleForDataTypes.
            goodTable.Locale = CultureInfo.InvariantCulture;
            DataColumn keyColumn = goodTable.Columns.Add("ID", typeof(Int32));

            keyColumn.AllowDBNull = false;
            keyColumn.Unique = true;
            goodTable.Columns.Add("LastName", typeof(String));
            goodTable.Columns.Add("FirstName", typeof(String));
            return goodTable;
        }
    }
}

Consulte também

Referência

System.Data.DataTable

System.Data.DataSet

System.Globalization.CultureInfo

CultureInfo.CurrentUICulture

CultureInfo.InvariantCulture