Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O Microsoft.Data.SqlClient namespace contém o provedor de dados .NET suportado para bancos de dados compatíveis com SQL Server. Começou como um fork de System.Data.SqlClient e mantém o modelo de programação ADO.NET familiar, ao mesmo tempo em que disponibiliza novos recursos do SQL Server independentemente do runtime do .NET.
Use Microsoft.Data.SqlClient para novo desenvolvimento.
Instale e importe o namespace
Adicione o pacote NuGet:
dotnet add package Microsoft.Data.SqlClient
Importar o namespace:
using Microsoft.Data.SqlClient;
A maioria das aplicações usa SqlConnection, SqlCommand, SqlParameter, SqlDataReader, e SqlTransaction. Para a superfície pública completa, veja a referência da API Microsoft. Data.SqlClient.
Relação com o ADO.NET
Microsoft. Data.SqlClient implementa tipos independentes do provedor a partir de System.Data.Common, incluindo DbConnection, DbCommand, DbDataReader, e DbTransaction. Também oferece APIs específicas para o SQL Server, tais como:
SqlBulkCopySqlBatchSqlConnectionStringBuilderSqlConfigurableRetryFactorySqlDependency- Autenticação, criptografia e suporte a tipos de dados específicos do SQL Server
Para orientações sobre a escolha de APIs independentes do provedor ou específicas de SqlClient, veja Arquitetura ADO.NET com Microsoft. Data.SqlClient.
Relação com System.Data.SqlClient
System.Data.SqlClienté o provedor mais antigo que vem com o .NET Framework e versões anteriores de .NET.
Microsoft.Data.SqlClient Usa muitos dos mesmos nomes de tipos, mas possui pacotes, namespaces, padrão, recursos e políticas de suporte diferentes.
Não faça referência a ambos os provedores no novo código da aplicação. Tipos com o mesmo nome dos dois pacotes não são intercambiáveis. Um System.Data.SqlClient.SqlConnection, por exemplo, não pode ser passado onde um Microsoft.Data.SqlClient.SqlConnection é exigido.
A migração geralmente começa adicionando o Microsoft.Data.SqlClient pacote e alterando as referências do namespace, mas você também deve revisar a criptografia da conexão, parâmetros, configuração, dependências transitivas e comportamento em tempo de execução. Siga Migrar de System.Data.SqlClient para Microsoft.Data.SqlClient antes de implantar.
Compatibilidade entre versões
A versão do pacote de driver é independente da versão .NET da aplicação e da versão do motor de banco de dados. Confira os três:
| Component | O que verificar |
|---|---|
| Microsoft.Data.SqlClient | A linha de lançamento é suportada e contém os recursos que seu aplicativo utiliza. |
| .NET ou .NET Framework | O aplicativo tem como alvo um runtime suportado por essa liberação do driver. |
| Banco de dados compatível com SQL Server | A versão do driver suporta a versão do banco de dados e o servidor suporta qualquer recurso de protocolo solicitado, como o TDS 8.0. |
Para matrizes atuais, veja o ciclo de vida do suporte ao driver SqlClient.
Alterações específicas à versão
As versões de drivers podem adicionar APIs, mover dependências opcionais e alterar padrões de segurança. Revise as mudanças antes de cada atualização menor ou maior.
Os exemplos incluem:
- A versão 4.0 mudou
Encryptpara padrão paratrue. - A versão 5.0 introduziu
SqlConnectionEncryptOptioneEncrypt=Strictpara TDS 8.0. - A versão 5.2 introduziu
SqlBatchem destinos .NET modernos compatíveis. - A versão 7.0 moveu a autenticação do Microsoft Entra fornecida pelo driver para
Microsoft.Data.SqlClient.Extensions.Azure.
Veja O que há de novo em Microsoft.Data.SqlClient para links para as notas de versão e um resumo da atualização.
Namespaces e pacotes relacionados
Alguns recursos usam tipos fora do namespace principal ou pacotes opcionais.
| Namespace ou pacote | Purpose |
|---|---|
Microsoft.Data.SqlClient.Server |
Implementações SqlClient de SqlDataRecord e SqlMetaData. |
Microsoft.Data.SqlTypes |
Tipos específicos de SqlClient, como SqlFileStream, SqlJson, e SqlVector<T>. |
Microsoft.Data.SqlClient.Diagnostics |
Payloads de eventos diagnósticos fortemente tipados. |
Microsoft.Data.SqlClient.Extensions.Azure |
Autenticação do Microsoft Entra fornecida pelo driver para a versão 7.0 e versões posteriores. |
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider |
Integração com Azure Key Vault para Always Encrypted. |
Não infira os requisitos do pacote apenas a partir de um namespace. Consulte o artigo sobre o recurso e as informações de dependência do pacote NuGet referentes à versão do driver que você usa.