SqlConnection Clase

Definición

Representa una conexión a una base de datos de SQL Server. Esta clase no puede heredarse.

public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable
public ref class SqlConnection sealed : System::Data::Common::DbConnection
public ref class SqlConnection sealed : System::ComponentModel::Component, ICloneable, IDisposable, System::Data::IDbConnection
public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable, IDisposable
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable
public sealed class SqlConnection : System.Data.Common.DbConnection
public sealed class SqlConnection : System.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbConnection
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable, IDisposable
type SqlConnection = class
    inherit DbConnection
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
type SqlConnection = class
    inherit Component
    interface IDbConnection
    interface IDisposable
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
    interface IDbConnection
    interface ICloneable
    interface IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Public NotInheritable Class SqlConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable, IDisposable
Herencia
SqlConnection
Herencia
Herencia
Implementaciones

Ejemplos

En el ejemplo siguiente se crea un SqlCommand objeto y .SqlConnection SqlConnection se abre y se establece como para Connection .SqlCommand A continuación, el ejemplo llama a ExecuteNonQuery. Para ello, ExecuteNonQuery se pasa un cadena de conexión y una cadena de consulta que es una instrucción INSERT de Transact-SQL. La conexión se cierra automáticamente cuando el código sale del bloque using.

private static void CreateCommand(string queryString,
    string connectionString)
{
    using (SqlConnection connection = new SqlConnection(
               connectionString))
    {
        SqlCommand command = new SqlCommand(queryString, connection);
        command.Connection.Open();
        command.ExecuteNonQuery();
    }
}
Public Sub CreateCommand(ByVal queryString As String, _
  ByVal connectionString As String)
    Using connection As New SqlConnection(connectionString)
        Dim command As New SqlCommand(queryString, connection)
        command.Connection.Open()
        command.ExecuteNonQuery()
    End Using
End Sub

Comentarios

Un SqlConnection objeto representa una sesión única en un origen de datos SQL Server. Con un sistema de base de datos cliente/servidor, equivale a una conexión de red al servidor. SqlConnectionse usa junto con SqlDataAdapter y SqlCommand para aumentar el rendimiento al conectarse a una base de datos de Microsoft SQL Server. Para todos los productos de SQL Server de terceros y otros orígenes de datos compatibles con OLE DB, use OleDbConnection.

Al crear una instancia de SqlConnection, todas las propiedades se establecen en sus valores iniciales. Para obtener una lista de estos valores, consulte el SqlConnection constructor .

Consulte ConnectionString para obtener una lista de las palabras clave de un cadena de conexión.

SqlConnection Si sale del ámbito, no se cerrará. Por lo tanto, debe cerrar explícitamente la conexión llamando a Close o Dispose. Close y Dispose son funcionalmente equivalentes. Si el valor Pooling de agrupación de conexiones se establece true en o yes, la conexión subyacente se devuelve al grupo de conexiones. Por otro lado, si Pooling se establece false en o no, la conexión subyacente al servidor se cierra realmente.

Nota

Los eventos de inicio y cierre de sesión no se provocarán en el servidor cuando se busque una conexión desde el grupo de conexiones o se devuelva a éste, puesto que la conexión no está cerrada realmente cuando se devuelve al grupo de conexiones. Para obtener más información, vea Agrupación de conexiones de SQL Server (ADO.NET).

Para asegurarse de que las conexiones siempre están cerradas, abra la conexión dentro de un using bloque, como se muestra en el siguiente fragmento de código. De este modo, se garantiza que la conexión se cierra automáticamente cuando el código sale del bloque.

Using connection As New SqlConnection(connectionString)
    connection.Open()
    ' Do work here; connection closed on following line.
End Using
using (SqlConnection connection = new SqlConnection(connectionString))
    {
        connection.Open();
        // Do work here; connection closed on following line.
    }

Nota

Para implementar aplicaciones de alto rendimiento, debe usar la agrupación de conexiones. Al usar el proveedor de datos de .NET Framework para SQL Server, no es necesario habilitar la agrupación de conexiones porque el proveedor lo administra automáticamente, aunque puede modificar algunas opciones de configuración. Para obtener más información, vea Agrupación de conexiones de SQL Server (ADO.NET).

Si el método que ejecuta un SqlException SqlCommandSqlConnection elemento , permanece abierto cuando el nivel de gravedad es de 19 o menos. Cuando el nivel de gravedad es 20 o superior, el servidor normalmente cierra .SqlConnection Sin embargo, el usuario puede volver a abrir la conexión y continuar.

Una aplicación que crea una instancia del SqlConnection objeto puede requerir que todos los llamadores directos e indirectos tengan permiso suficiente para el código estableciendo demandas de seguridad declarativas o imperativas. SqlConnection realiza demandas de seguridad mediante el SqlClientPermission objeto . Los usuarios pueden comprobar que su código tiene permisos suficientes mediante el SqlClientPermissionAttribute objeto . Los usuarios y administradores también pueden usar la Caspol.exe (herramienta de directiva de seguridad de acceso de código) para modificar la directiva de seguridad en el equipo, el usuario y los niveles empresariales. Para obtener más información, vea Seguridad en .NET. Para obtener un ejemplo que muestre cómo usar las demandas de seguridad, consulte Seguridad de acceso del código y ADO.NET.

Para obtener más información sobre el control de mensajes informativos y de advertencia desde el servidor, vea Eventos de conexión. Para obtener más información sobre SQL Server mensajes de error y errores del motor, consulte Motor de base de datos Eventos y errores.

Precaución

Puede forzar TCP en lugar de memoria compartida. Puede hacerlo mediante el prefijo tcp: al nombre del servidor en el cadena de conexión o puede usar localhost.

Constructores

SqlConnection()

Inicializa una nueva instancia de la clase SqlConnection.

SqlConnection(String)

Inicializa una nueva instancia de la clase SqlConnection, dada una cadena que contiene la cadena de conexión.

SqlConnection(String, SqlCredential)

Inicializa una nueva instancia de la clase SqlConnection a la que se proporciona una cadena de conexión que no usa Integrated Security = true y un objeto SqlCredential que contiene el identificador de usuario y la contraseña.

Propiedades

AccessToken

Obtiene o establece el token de acceso para la conexión.

CanCreateBatch

Obtiene un valor que indica si esta instancia de DbConnection admite la clase DbBatch.

(Heredado de DbConnection)
CanRaiseEvents

Obtiene un valor que indica si el componente puede generar un evento.

(Heredado de Component)
ClientConnectionId

Identificador de conexión del intento de conexión más reciente, independientemente de si el intento se realizó correctamente o no.

ColumnEncryptionKeyCacheTtl

Obtiene o establece el período de vida para entradas de clave de cifrado de columnas en la memoria caché de clave de cifrado de columnas para la características Always Encrypted. El valor predeterminado es 2 horas. 0 significa que no hay almacenamiento en caché en absoluto.

ColumnEncryptionQueryMetadataCacheEnabled

Obtiene o establece un valor que indica si el almacenamiento en caché de metadatos de consulta está habilitado (true) o no (false) para consultas parametrizadas que se ejecutan en bases con la función Always Encrypted. El valor predeterminado es true.

ColumnEncryptionTrustedMasterKeyPaths

Permite establecer una lista de rutas de acceso de confianza a la clave para un servidor de base de datos. Si durante el procesamiento de una consulta de aplicación, el controlador recibe una ruta de acceso de clave que no se encuentre en la lista, la consulta generará error. Esta propiedad proporciona protección adicional contra los ataques de seguridad que implican un servidor SQL Server comprometido que proporciona rutas de acceso a la clave falsas que pueden provocar la divulgación de las credenciales del almacén de claves.

ConnectionString

Obtiene o establece la cadena que se utiliza para abrir una base de datos de SQL Server.

ConnectionTimeout

Obtiene el tiempo de espera (en segundos) mientras se intenta establecer una conexión antes de que se interrumpa el intento y se genere un error.

Container

Obtiene la interfaz IContainer que contiene la clase Component.

(Heredado de Component)
Credential

Obtiene o establece el objeto SqlCredential para esta conexión.

Credentials
Database

Obtiene el nombre de la base de datos actual o de la que se va a utilizar una vez que se abre la conexión.

DataSource

Obtiene el nombre de la instancia de SQL Server con la que se va a establecer la conexión.

DbProviderFactory

Obtiene el objeto DbProviderFactory para este objeto DbConnection.

(Heredado de DbConnection)
DesignMode

Obtiene un valor que indica si Component está actualmente en modo de diseño.

(Heredado de Component)
Events

Obtiene la lista de controladores de eventos asociados a Component.

(Heredado de Component)
FireInfoMessageEventOnUserErrors

Obtiene o establece la propiedad FireInfoMessageEventOnUserErrors.

PacketSize

Obtiene el tamaño en bytes de los paquetes de red utilizados para establecer comunicación con una instancia de SQL Server.

ServerVersion

Obtiene una cadena que contiene la versión de la instancia de SQL Server a la que se conecta el cliente.

Site

Obtiene o establece ISite de Component.

(Heredado de Component)
State

Indica el estado de SqlConnection durante la operación más reciente de la red realizada en la conexión.

StatisticsEnabled

Cuando se establece en true, permite la obtención de estadísticas para la conexión actual.

WorkstationId

Obtiene una cadena que identifica el cliente de bases de datos.

Métodos

BeginDbTransaction(IsolationLevel)

Cuando se invalida en una clase derivada, inicia una transacción de base de datos.

(Heredado de DbConnection)
BeginDbTransactionAsync(IsolationLevel, CancellationToken)

Inicia de forma asincrónica una transacción de base de datos.

(Heredado de DbConnection)
BeginTransaction()

Inicia una transacción de base de datos.

BeginTransaction(IsolationLevel)

Inicia una transacción de base de datos con el nivel de aislamiento especificado.

BeginTransaction(IsolationLevel, String)

Inicia una transacción de la base de datos con el nivel de aislamiento y el nombre de transacción especificados.

BeginTransaction(String)

Inicia una transacción de base de datos con el nombre de transacción especificado.

BeginTransactionAsync(CancellationToken)

Empieza de forma asincrónica una transacción de base de datos.

(Heredado de DbConnection)
BeginTransactionAsync(IsolationLevel, CancellationToken)

Empieza de forma asincrónica una transacción de base de datos.

(Heredado de DbConnection)
ChangeDatabase(String)

Cambia la base de datos actual de una conexión SqlConnection abierta.

ChangeDatabaseAsync(String, CancellationToken)

Cambia de forma asincrónica la base de datos actual de una conexión abierta.

(Heredado de DbConnection)
ChangePassword(String, SqlCredential, SecureString)

Cambia la contraseña de SQL Server para el usuario indicado en el objeto de SqlCredential.

ChangePassword(String, String)

Cambia la contraseña de SQL Server para el usuario indicado en la cadena de conexión a la nueva contraseña proporcionada.

ClearAllPools()

Vacía la agrupación de conexiones.

ClearPool(SqlConnection)

Vacía la agrupación de conexiones asociada a la conexión especificada.

Close()

Cierra la conexión con la base de datos. Es el método preferido para cerrar cualquier conexión abierta.

CloseAsync()

Cierra de forma asincrónica la conexión con la base de datos.

(Heredado de DbConnection)
CreateBatch()

Devuelve una nueva instancia de la clase del proveedor que implementa la clase DbBatch.

(Heredado de DbConnection)
CreateCommand()

Crea y devuelve un objeto SqlCommand asociado a la conexión SqlConnection.

CreateDbBatch()

Cuando se invalida en una clase derivada, devuelve una nueva instancia de la clase del proveedor que implementa la DbBatch clase .

(Heredado de DbConnection)
CreateDbCommand()

Cuando se reemplaza en una clase derivada, crea y devuelve un objeto DbCommand asociado a la conexión actual.

(Heredado de DbConnection)
CreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto.

(Heredado de MarshalByRefObject)
Dispose()

Realiza tareas definidas por la aplicación asociadas a la liberación o al restablecimiento de recursos no administrados.

(Heredado de DbConnection)
Dispose()

Libera todos los recursos que usa Component.

(Heredado de Component)
Dispose(Boolean)

Libera los recursos no administrados que usa DbConnection y, de forma opcional, libera los recursos administrados.

(Heredado de DbConnection)
Dispose(Boolean)

Libera los recursos no administrados que usa Component y, de forma opcional, libera los recursos administrados.

(Heredado de Component)
DisposeAsync()

Desecha de forma asincrónica el objeto de conexión.

(Heredado de DbConnection)
EnlistDistributedTransaction(ITransaction)

Se da de alta en la transacción especificada como una transacción distribuida.

EnlistTransaction(Transaction)

Se da de alta en la transacción especificada como una transacción distribuida.

EnlistTransaction(Transaction)

Da de alta en la transacción especificada.

(Heredado de DbConnection)
Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetLifetimeService()
Obsoleto.

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
GetSchema()

Devuelve información de esquema para el origen de datos de SqlConnection. Para obtener más información sobre el esquema, vea Colecciones de esquemas de SQL Server.

GetSchema()

Devuelve información de esquema para el origen de datos de DbConnection.

(Heredado de DbConnection)
GetSchema(String)

Devuelve información de esquema para el origen de datos de SqlConnection utilizando la cadena especificada para el nombre del esquema.

GetSchema(String)

Devuelve información de esquema para el origen de datos de DbConnection utilizando la cadena especificada para el nombre del esquema.

(Heredado de DbConnection)
GetSchema(String, String[])

Devuelve información de esquema para el origen de datos de SqlConnection utilizando la cadena especificada para el nombre del esquema y la matriz de cadena determinada para los valores de restricción.

GetSchema(String, String[])

Devuelve información de esquema para el origen de datos de DbConnection utilizando la cadena especificada para el nombre del esquema y la matriz de cadena determinada para los valores de restricción.

(Heredado de DbConnection)
GetSchemaAsync(CancellationToken)

Esta es una versión asincrónica de GetSchema(). Los proveedores lo deben reemplazar con una implementación apropiada. Opcionalmente, se puede respetar cancellationToken. La implementación predeterminada invoca la llamada sincrónica a GetSchema() y devuelve una tarea completada. La implementación predeterminada devolverá una tarea cancelada si se pasa un cancellationToken ya cancelado. Las excepciones producidas por GetSchema() se comunicarán mediante la propiedad Task Exception devuelta.

(Heredado de DbConnection)
GetSchemaAsync(String, CancellationToken)

Esta es la versión asincrónica de GetSchema(String). Los proveedores lo deben reemplazar con una implementación apropiada. Opcionalmente, se puede respetar cancellationToken. La implementación predeterminada invoca la llamada sincrónica a GetSchema(String) y devuelve una tarea completada. La implementación predeterminada devolverá una tarea cancelada si se pasa un cancellationToken ya cancelado. Las excepciones producidas por GetSchema(String) se comunicarán mediante la propiedad Task Exception devuelta.

(Heredado de DbConnection)
GetSchemaAsync(String, String[], CancellationToken)

Esta es la versión asincrónica de GetSchema(String, String[]). Los proveedores lo deben reemplazar con una implementación apropiada. Opcionalmente, se puede respetar cancellationToken. La implementación predeterminada invoca la llamada sincrónica a GetSchema(String, String[]) y devuelve una tarea completada. La implementación predeterminada devolverá una tarea cancelada si se pasa un cancellationToken ya cancelado. Las excepciones producidas por GetSchema(String, String[]) se comunicarán mediante la propiedad Task Exception devuelta.

(Heredado de DbConnection)
GetService(Type)

Devuelve un objeto que representa el servicio suministrado por Component o por Container.

(Heredado de Component)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeLifetimeService()
Obsoleto.

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

(Heredado de MarshalByRefObject)
MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto MarshalByRefObject actual.

(Heredado de MarshalByRefObject)
OnStateChange(StateChangeEventArgs)

Genera el evento StateChange.

(Heredado de DbConnection)
Open()

Abre una conexión de base de datos con los valores de propiedad que especifica ConnectionString.

OpenAsync()

Una versión asincrónica de Open(), que abre una conexión a bases de datos con los valores especificados por ConnectionString. Este método invoca el método virtual OpenAsync(CancellationToken) con CancellationToken.None.

(Heredado de DbConnection)
OpenAsync(CancellationToken)

Una versión asincrónica de Open(), que abre una conexión a bases de datos con los valores de propiedad especificados por ConnectionString. Token de cancelación que se puede usar para solicitar que se abandone la operación antes de que transcurra el tiempo de espera de la conexión. Las excepciones se propagarán mediante la tarea devuelta. Si el tiempo de espera de conexión transcurre sin conectar correctamente, la tarea devuelta se marcará como error con una excepción. La implementación devuelve una tarea sin bloquear el subproceso de llamada para las conexiones agrupadas y no agrupadas.

OpenAsync(CancellationToken)

Esta es la versión asincrónica de Open(). Los proveedores lo deben reemplazar con una implementación apropiada. El token de cancelación se puede aceptar opcionalmente.

La implementación predeterminada invoca la llamada sincrónica a Open() y devuelve una tarea completada. La implementación predeterminada devolverá una tarea cancelada si se pasa un cancellationToken ya cancelado. Las excepciones producidas por Open se comunicarán mediante la propiedad Task Exception devuelta.

No invoque otros métodos y propiedades del objeto DbConnection hasta que se haya completado la tarea devuelta.

(Heredado de DbConnection)
RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Registra los proveedores de almacenamiento de claves de cifrado de columnas.

ResetStatistics()

Si se habilita la obtención de estadísticas, todos los valores se restablecen en cero.

RetrieveStatistics()

Devuelve una colección de pares de nombre y valor de las estadísticas cuando se llama el método.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)
ToString()

Devuelve una String que contiene el nombre del Component, si existe. Este método no se debe invalidar.

(Heredado de Component)

Eventos

Disposed

Tiene lugar cuando una llamada elimina el componente mediante una llamada al método Dispose().

(Heredado de Component)
InfoMessage

Se produce cuando SQL Server devuelve un mensaje informativo o de advertencia.

StateChange

Se produce cuando cambia el estado de la conexión.

StateChange

Se produce cuando cambia el estado de la conexión.

(Heredado de DbConnection)

Implementaciones de interfaz explícitas

ICloneable.Clone()

Crea un nuevo objeto copiado de la instancia actual.

IDbConnection.BeginTransaction()

Inicia una transacción de base de datos.

IDbConnection.BeginTransaction()

Inicia una transacción de base de datos.

(Heredado de DbConnection)
IDbConnection.BeginTransaction(IsolationLevel)

Inicia una transacción de base de datos con el valor de IsolationLevel especificado.

IDbConnection.BeginTransaction(IsolationLevel)

Inicia una transacción de base de datos con el nivel de aislamiento especificado.

(Heredado de DbConnection)
IDbConnection.CreateCommand()

Crea y devuelve un objeto Command asociado a la conexión.

IDbConnection.CreateCommand()

Crea y devuelve un objeto DbCommand asociado a la conexión actual.

(Heredado de DbConnection)

Se aplica a

Consulte también