Mapeamentos de tipo de dados no ADO.NET
Aplicável a: .NET Framework .NET .NET Standard
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.