Compartilhar via


Mapeamentos de tipo de dados no ADO.NET

Aplicável a: .NET Framework .NET .NET Standard

Baixar ADO.NET

O ADO.NET é baseado no Common Type System, que define como os tipos são declarados, usados e gerenciados no runtime. Consiste nos tipos de valor e nos tipos de referência, que derivam do tipo de base Object. Ao trabalhar com uma fonte de dados, o tipo de dados será inferido no provedor de dados se não for especificado explicitamente. Por exemplo, um objeto DataSet é independente de qualquer fonte de dados específica. Os dados de um DataSet são recuperados de uma fonte de dados, e as alterações são persistidas de volta para a fonte de dados usando o DataAdapter. Esse fluxo de programa significa que, quando um DataAdapter preenche um DataTable em um DataSet com valores de uma fonte de dados, os tipos de dados resultantes das colunas em DataTable são tipos de .NET Framework, em vez de tipos específicos do Provedor de Dados Microsoft SqlClient para SQL Server que são usados para se conectar à fonte de dados.

Da mesma forma, quando um DataReader retorna um valor de uma fonte de dados, o valor resultante é armazenado em uma variável local que tem um tipo de .NET Framework. Para as operações Fill do DataAdapter e os métodos Get do DataReader, o tipo de .NET Framework é inferido do valor retornado do Provedor de Dados Microsoft SqlClient para SQL Server.

Em vez de depender do tipo de dados inferido, você pode usar os métodos acessadores tipados do DataReader quando souber o tipo específico do valor que está sendo retornado. Os métodos acessadores tipados oferecem melhor desempenho retornando um valor como um tipo específico de .NET Framework, o que elimina a necessidade de conversão de tipo adicional.

Observação

Os valores nulos para os tipos de dados do Provedor de Dados Microsoft SqlClient para SQL Server são representados por DBNull.Value.

Nesta seção

Mapeamentos de tipo de dados do SQL Server Lista mapeamentos de tipo de dados inferidos e métodos acessadores de dados para Microsoft.Data.SqlClient.

Números de pontos flutuantes Descreve os problemas que os desenvolvedores costumam encontrar ao trabalhar com números de pontos flutuantes.

Confira também