SqlConnection Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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 |
| 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 |
| 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) |