Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El Microsoft.Data.SqlClient espacio de nombres contiene el proveedor de datos .NET compatible para bases de datos compatibles con SQL Server. Comenzó como una bifurcación de System.Data.SqlClient y conserva el conocido modelo de programación de ADO.NET, al tiempo que incorpora nuevas funcionalidades de SQL Server de forma independiente del entorno de ejecución de .NET.
Usa Microsoft.Data.SqlClient para el desarrollo nuevo.
Instalar e importar el espacio de nombres
Añadir el paquete NuGet:
dotnet add package Microsoft.Data.SqlClient
Importar el espacio de nombres:
using Microsoft.Data.SqlClient;
La mayoría de las aplicaciones usan SqlConnection, SqlCommand, SqlParameter, SqlDataReader, y SqlTransaction. Para la superficie pública completa, véase la referencia de la API de Microsoft. Data.SqlClient.
Relación con ADO.NET
Microsoft. Data.SqlClient implementa tipos independientes del proveedor de System.Data.Common, incluyendo DbConnection, DbCommand, DbDataReader, y DbTransaction. También proporciona APIs específicas de SQL Server como:
SqlBulkCopySqlBatchSqlConnectionStringBuilderSqlConfigurableRetryFactorySqlDependency- Autenticación, cifrado y soporte de tipos de datos específicos de SQL Server
Para orientación sobre la elección de APIs independientes del proveedor o específicas de SqlClient, consulta la arquitectura ADO.NET con Microsoft. Data.SqlClient.
Relación con System.Data.SqlClient
System.Data.SqlClient es el proveedor más antiguo que se incluye con .NET Framework y las versiones anteriores de .NET.
Microsoft.Data.SqlClient Utiliza muchos de los mismos nombres de tipos, pero tiene paquetes, espacios de nombres, valores predeterminados, características y políticas de soporte diferentes.
No hagas referencia a ambos proveedores en el código de la solicitud nuevo. Los tipos con el mismo nombre de los dos paquetes no son intercambiables. Un System.Data.SqlClient.SqlConnection, por ejemplo, no puede pasarse donde se requiere un Microsoft.Data.SqlClient.SqlConnection.
La migración suele comenzar añadiendo el Microsoft.Data.SqlClient paquete y cambiando las referencias del espacio de nombres, pero también debes revisar el cifrado de la conexión, los parámetros, la configuración, las dependencias transitivas y el comportamiento en tiempo de ejecución. Sigue Migrar de System.Data.SqlClient a Microsoft. Data.SqlClient antes de desplegar.
Compatibilidad de versiones
La versión del paquete de controladores es independiente de la versión .NET de la aplicación y de la versión del motor de base de datos. Revisa los tres:
| Component | Qué comprobar |
|---|---|
| Microsoft.Data.SqlClient | La línea de lanzamiento es compatible y contiene las funciones que utiliza tu aplicación. |
| .NET o .NET Framework | La aplicación apunta a un tiempo de ejecución soportado por esa versión del controlador. |
| Base de datos compatible con SQL Server | La versión del controlador soporta la versión de la base de datos y el servidor soporta cualquier función de protocolo solicitada, como TDS 8.0. |
Para matrices actuales, véase ciclo de vida de soporte de controladores SqlClient.
Cambios específicos de la versión
Las versiones de drivers pueden añadir APIs, mover dependencias opcionales y cambiar valores predeterminados seguros. Revisa los cambios antes de cada actualización menor o mayor.
Algunos ejemplos son:
- La versión 4.0 cambió
Encryptpara que pasara a sertruede forma predeterminada. - La versión 5.0 introdujo
SqlConnectionEncryptOptionyEncrypt=Strictpara TDS 8.0. - La versión 5.2 incorporó
SqlBatchen las plataformas de destino modernas de .NET compatibles. - La versión 7.0 trasladó la autenticación de Microsoft Entra proporcionada por el controlador a
Microsoft.Data.SqlClient.Extensions.Azure.
Consulta las novedades en Microsoft. Data.SqlClient para enlaces a notas de lanzamiento y un resumen de actualización.
Espacios de nombres y paquetes relacionados
Algunas características utilizan tipos fuera del espacio de nombres principal o paquetes opcionales.
| Espacio de nombres o paquete | Purpose |
|---|---|
Microsoft.Data.SqlClient.Server |
Implementaciones en SqlClient de SqlDataRecord y SqlMetaData. |
Microsoft.Data.SqlTypes |
Tipos específicos de SqlClient como SqlFileStream, SqlJson, y SqlVector<T>. |
Microsoft.Data.SqlClient.Diagnostics |
Cargas útiles de eventos diagnósticos fuertemente tipadas. |
Microsoft.Data.SqlClient.Extensions.Azure |
Autenticación Microsoft Entra proporcionada por el controlador para la versión 7.0 y posteriores. |
Microsoft.Data.SqlClient.AlwaysEncrypted.AzureKeyVaultProvider |
Integración con Azure Key Vault para Always Encrypted. |
No deduzcas los requisitos de los paquetes basándote únicamente en un espacio de nombres. Consulta el artículo sobre la característica y la información de dependencias del paquete NuGet correspondiente a la versión del controlador que utilices.