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::ComponentModel::Component, ICloneable, IDisposable, System::Data::IDbConnection
public ref class SqlConnection sealed : System::Data::Common::DbConnection, ICloneable
public sealed class SqlConnection : System.ComponentModel.Component, ICloneable, IDisposable, System.Data.IDbConnection
public sealed class SqlConnection : System.Data.Common.DbConnection, ICloneable
type SqlConnection = class
    inherit Component
    interface IDbConnection
    interface IDisposable
    interface ICloneable
type SqlConnection = class
    inherit DbConnection
    interface ICloneable
Public NotInheritable Class SqlConnection
Inherits Component
Implements ICloneable, IDbConnection, IDisposable
Public NotInheritable Class SqlConnection
Inherits DbConnection
Implements ICloneable
Herencia
Herencia
Implementaciones

Ejemplos

En el ejemplo siguiente se crea un SqlCommand y .SqlConnection SqlConnection se abre y establece como para Connection .SqlCommand A continuación, el ejemplo llama a ExecuteNonQuery. Para ello, el ExecuteNonQuery se pasa a SqlConnection 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 objeto /> de SqlConnection se usa junto con SqlDataAdapter y SqlCommand para aumentar el rendimiento al conectarse a un 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 .

Vea 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.

Note

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 estén siempre cerradas, abra la conexión dentro de un using bloque, como se muestra en el fragmento de código siguiente. Al hacerlo, se garantiza que la conexión se cierre automáticamente cuando el código salga 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.
    }

Note

Para implementar aplicaciones de alto rendimiento, debe usar la agrupación de conexiones. Al usar la 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 SqlExceptionSqlCommandSqlConnection , permanece abierto cuando el nivel de gravedad es 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 autores de llamadas directos e indirectos tengan permiso suficiente para el código estableciendo demandas de seguridad declarativas o imperativas. SqlConnection hace 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 los niveles de máquina, usuario y empresa. Para obtener más información, consulte Seguridad en .NET. Para ver un ejemplo que muestra cómo usar las demandas de seguridad, consulte Seguridad de acceso de código y ADO.NET.

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

Caution

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

Nombre Description
SqlConnection()

Inicializa una nueva instancia de la clase SqlConnection.

SqlConnection(String, SqlCredential)

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

SqlConnection(String)

Inicializa una nueva instancia de la SqlConnection clase cuando se especifica una cadena que contiene la cadena de conexión.

Propiedades

Nombre Description
AccessToken

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

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 de las entradas de clave de cifrado de columnas en la caché de claves de cifrado de columnas para la característica Always Encrypted . El valor predeterminado es 2 horas. 0 significa que no hay almacenamiento en caché.

ColumnEncryptionQueryMetadataCacheEnabled

Obtiene o establece un valor que indica si el almacenamiento en caché de metadatos de consulta está habilitado (true) o no (false) para las consultas con parámetros que se ejecutan en bases de datos habilitadas para 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 al procesar una consulta de aplicación, el controlador recibe una ruta de acceso de clave que no está en la lista, se producirá un error en la consulta. Esta propiedad proporciona protección adicional contra ataques de seguridad que implican un SQL Server comprometido que proporciona rutas de acceso de clave falsas, lo que puede provocar la pérdida de credenciales del almacén de claves.

ConnectionString

Obtiene o establece la cadena usada para abrir una base de datos de SQL Server.

ConnectionTimeout

Obtiene el tiempo de espera (en segundos) al intentar establecer una conexión antes de finalizar el intento y generar un error.

Container

Obtiene el IContainer objeto que contiene el Componentobjeto .

(Heredado de Component)
Credential

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

Database

Obtiene el nombre de la base de datos actual o de la base de datos que se va a usar después de abrir una conexión.

DataSource

Obtiene el nombre de la instancia de SQL Server a la que se va a conectar.

DbProviderFactory

Obtiene para DbProviderFactory este DbConnectionobjeto .

(Heredado de DbConnection)
DesignMode

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

(Heredado de Component)
Events

Obtiene la lista de controladores de eventos que están asociados a este Componentobjeto .

(Heredado de Component)
FireInfoMessageEventOnUserErrors

Obtiene o establece la FireInfoMessageEventOnUserErrors propiedad .

PacketSize

Obtiene el tamaño (en bytes) de los paquetes de red usados para comunicarse con una instancia de SQL Server.

ServerVersion

Obtiene una cadena que contiene la versión de la instancia de SQL Server a la que está conectado el cliente.

Site

Obtiene o establece ISite de Component.

(Heredado de Component)
State

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

StatisticsEnabled

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

WorkstationId

Obtiene una cadena que identifica al cliente de base de datos.

Métodos

Nombre Description
BeginDbTransaction(IsolationLevel)

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

(Heredado de DbConnection)
BeginTransaction()

Inicia una transacción de base de datos.

BeginTransaction(IsolationLevel, String)

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

BeginTransaction(IsolationLevel)

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

BeginTransaction(String)

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

ChangeDatabase(String)

Cambia la base de datos actual de un objeto abierto SqlConnection.

ChangePassword(String, SqlCredential, SecureString)

Cambia la contraseña de SQL Server para el usuario indicado en el objeto 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 especificada.

ClearAllPools()

Vacía el grupo de conexiones.

ClearPool(SqlConnection)

Vacía el grupo de conexiones asociado a la conexión especificada.

Close()

Cierra la conexión a la base de datos. Este es el método preferido para cerrar cualquier conexión abierta.

CreateCommand()

Crea y devuelve un SqlCommand objeto asociado a SqlConnection.

CreateDbCommand()

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

(Heredado de DbConnection)
CreateObjRef(Type)

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

(Heredado de MarshalByRefObject)
Dispose()

Libera todos los recursos usados por .Component

(Heredado de Component)
Dispose(Boolean)

Libera los recursos no administrados utilizados por Component y, opcionalmente, libera los recursos administrados.

(Heredado de Component)
EnlistDistributedTransaction(ITransaction)

Se inscribe en la transacción especificada como una transacción distribuida.

EnlistTransaction(Transaction)

Se inscribe en la transacción especificada como una transacción distribuida.

Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetHashCode()

Actúa como la función hash predeterminada.

(Heredado de Object)
GetLifetimeService()

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 este SqlConnection. Para obtener más información sobre el esquema, vea SQL Server Schema Collections.

GetSchema(String, String[])

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

GetSchema(String)

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

GetService(Type)

Devuelve un objeto que representa un servicio proporcionado por Component o por su Container.

(Heredado de Component)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
InitializeLifetimeService()

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 Objectactual.

(Heredado de Object)
MemberwiseClone(Boolean)

Crea una copia superficial del objeto actual MarshalByRefObject .

(Heredado de MarshalByRefObject)
OnStateChange(StateChangeEventArgs)

Genera el evento StateChange.

(Heredado de DbConnection)
Open()

Abre una conexión de base de datos con la configuración de propiedad especificada por .ConnectionString

OpenAsync()

Una versión asincrónica de , que abre una conexión de base de Open()datos con la configuración especificada por .ConnectionString Este método invoca el método OpenAsync(CancellationToken) virtual con CancellationToken.None.

(Heredado de DbConnection)
OpenAsync(CancellationToken)

Una versión asincrónica de , que abre una conexión de base de Open()datos con la configuración de propiedad especificada por .ConnectionString El token de cancelación se puede usar para solicitar que se abandone la operación antes de que transcurre el tiempo de espera de conexión. Las excepciones se propagarán a través de la tarea devuelta. Si el tiempo de espera de conexión transcurre sin conectarse correctamente, la tarea devuelta se marcará como errónea con una excepción. La implementación devuelve una tarea sin bloquear el subproceso de llamada para las conexiones agrupadas y no agrupadas.

RegisterColumnEncryptionKeyStoreProviders(IDictionary<String,SqlColumnEncryptionKeyStoreProvider>)

Registra los proveedores de almacén de claves de cifrado de columnas.

ResetStatistics()

Si la recopilación de estadísticas está habilitada, todos los valores se restablecen a cero.

RetrieveStatistics()

Devuelve una colección de pares de valores de nombre de estadísticas en el momento en que se llama al método .

ToString()

Devuelve un String objeto que contiene el nombre de Component, si existe. Este método no se debe invalidar.

(Heredado de Component)

Eventos

Nombre Description
Disposed

Se produce cuando el componente se elimina mediante una llamada al Dispose() método .

(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

Nombre Description
ICloneable.Clone()

Crea un nuevo objeto que es una copia 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)

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

IDbConnection.BeginTransaction(IsolationLevel)

Comienza 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 DbCommand objeto asociado a la conexión actual.

(Heredado de DbConnection)

Se aplica a

Consulte también