1. SqlConnection (Clase)
Un objeto SqlConnection representa una única sesión con un origen de datos de SQL
Server. En el caso de un sistema de bases de datos de cliente y servidor, equivale a una
conexión de red al servidor. SqlConnection se usa junto con SqlDataAdapter y
SqlCommand para aumentar el rendimiento en la conexión con una base de datos de
Microsoft SQL Server. Con productos SQL Server de otros proveedores y otros orígenes
de datos compatibles con OLE DB, se debe utilizar OleDbConnection.
Cuando se crea una instancia de SqlConnection, se establecen todas las propiedades en
sus valores iniciales. Para obtener una lista de esos valores, vea el constructor
SqlConnection.
Vea ConnectionString para obtener una lista de las palabras clave de una cadena de
conexión.
Si la conexión SqlConnection está fuera de ámbito, no se cerrará. Por tanto, deberá cerrar
la conexión explícitamente mediante una llamada a Close o Dispose. Close y Dispose son
funcionalmente equivalentes. Si el valor de agrupación de conexiones Pooling se
establece en true o yes, la conexión subyacente se devuelve al grupo de conexiones. Por
otro lado, si Pooling se establece en false o no, la conexión subyacente al servidor se
cerrará.
El tipo SqlConnection expone los siguientes miembros.
Constructores
Nombre Descripción
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.
Propiedades
2. Nombre Descripción
CanRaiseEvents Obtiene un valor que indica si el
componente puede generar un evento.
(Se hereda de Component).
ConnectionString Obtiene o establece la cadena utilizada
para abrir una base de datos de SQL
Server. (Invalida a
DbConnection.ConnectionString).
ConnectionTimeout Obtiene el tiempo de espera para
intentar establecer una conexión antes
de detenerse y generar un error.
(Invalida a
DbConnection.ConnectionTimeout).
Container Obtiene IContainer que contiene
Component. (Se hereda de Component).
Database Obtiene el nombre de la base de datos
actual o de la base de datos que se va a
utilizar una vez se abra la conexión.
(Invalida a DbConnection.Database).
DataSource Obtiene el nombre de la instancia de
SQL Server con la que se va a
establecer la conexión. (Invalida a
DbConnection.DataSource).
DbProviderFactory Obtiene DbProviderFactory para este
DbConnection. (Se hereda de
DbConnection).
DesignMode Obtiene un valor que indica si
Component está actualmente en modo
de diseño. (Se hereda de Component).
3. Events Obtiene la lista de controladores de
eventos asociados a Component. (Se
hereda de Component).
FireInfoMessageEventOnUserErrors Obtiene o establece la propiedad
FireInfoMessageEventOnUserErrors.
PacketSize Obtiene el tamaño expresado 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. (Invalida a
DbConnection.ServerVersion).
Site Obtiene o establece ISite de Component.
(Se hereda de Component).
State Indica el estado de SqlConnection.
(Invalida a DbConnection.State).
StatisticsEnabled Cuando se establece en true, permite la
recopilación de estadísticas para la
conexión actual.
WorkstationId Obtiene una cadena que identifica el
cliente de bases de datos.
Métodos
Nombre Descripción
4. BeginDbTransaction Inicia una transacción de base de datos. (Se
hereda 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(String) Inicia una transacción de base de datos con el
nombre de transacción especificado.
BeginTransaction(IsolationLevel, Inicia una transacción de la base de datos con
String) el nivel de aislamiento y el nombre de
transacción especificados.
ChangeDatabase Cambia la base de datos actual de una
conexión SqlConnection abierta. (Invalida a
DbConnection.ChangeDatabase(String)).
ChangePassword 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 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. (Invalida a
DbConnection.Close).
CreateCommand Crea y devuelve un objeto SqlCommand
asociado a la conexión SqlConnection.
5. CreateDbCommand Crea y devuelve un objeto DbCommand
asociado a la conexión actual. (Se hereda de
DbConnection).
CreateObjRef Crea un objeto que contiene toda la
información relevante necesaria para generar
un proxy utilizado para comunicarse con un
objeto remoto. (Se hereda de
MarshalByRefObject).
Dispose Libera todos los recursos utilizados por el
objeto Component. (Se hereda de
Component).
Dispose(Boolean) Libera los recursos no administrados usados
por Component y, opcionalmente, los recursos
administrados. (Se hereda de Component).
EnlistDistributedTransaction Se da de alta en la transacción especificada
como una transacción distribuida.
EnlistTransaction Se da de alta en la transacción especificada
como una transacción distribuida. (Invalida a
DbConnection.EnlistTransaction(Transaction)).
Equals(Object) Determina si el objeto Object especificado es
igual al objeto Object actual. (Se hereda de
Object).
Finalize Libera recursos no administrados y realiza
otras operaciones de limpieza antes de que se
reclame el objeto Component durante la
recolección de elementos no utilizados. (Se
hereda de Component).
GetHashCode Actúa como función hash para un tipo
concreto. (Se hereda de Object).
6. GetLifetimeService Recupera el objeto de servicio de duración
actual que controla la directiva de duración de
esta instancia. (Se hereda de
MarshalByRefObject).
GetSchema Devuelve información de esquema para el
origen de datos de SqlConnection. (Invalida a
DbConnection.GetSchema).
GetSchema(String) Devuelve información de esquema para el
origen de datos de SqlConnection utilizando la
cadena especificada para el nombre del
esquema. (Invalida a
DbConnection.GetSchema(String)).
GetSchema(String, String()) Devuelve información de esquema para el
origen de datos de este objeto SqlConnection
utilizando la cadena especificada para el
nombre de esquema y la matriz de cadena
especificada para los valores de restricción.
(Invalida a DbConnection.GetSchema(String,
String())).
GetService Devuelve un objeto que representa el servicio
suministrado por Component o por Container.
(Se hereda de Component).
GetType Obtiene el objeto Type de la instancia actual.
(Se hereda de Object).
InitializeLifetimeService Obtiene un objeto de servicio de duración para
controlar la directiva de duración de esta
instancia. (Se hereda de
MarshalByRefObject).
MemberwiseClone Crea una copia superficial del objeto Object
actual. (Se hereda de Object).
7. MemberwiseClone(Boolean) Crea una copia superficial del objeto
MarshalByRefObject actual. (Se hereda de
MarshalByRefObject).
OnStateChange Provoca el evento StateChange. (Se hereda
de DbConnection).
Open Abre una conexión de base de datos con los
valores de propiedad que especifica
ConnectionString. (Invalida a
DbConnection.Open).
ResetStatistics Si se habilita la recolecció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 un objeto String que contiene el
nombre del objeto Component, en caso de
que exista. Este método no debe
reemplazarse. (Se hereda de Component).
Eventos
Nombre Descripción
Disposed Se produce cuando el componente se elimina mediante una
llamada al método Dispose. (Se hereda de Component).
InfoMessage Se produce cuando SQL Server devuelve un mensaje
informativo o de advertencia.
8. StateChange Se produce cuando cambia el estado del evento. (Se hereda de
DbConnection).
Implementaciones explícitas de interfaces
Nombre Descripción
ICloneable.Clone Crea un nuevo objeto
copiado de la instancia
actual.
IDbConnection.BeginTransaction Inicia una transacción de
base de datos. (Se hereda
de DbConnection).
IDbConnection.BeginTransaction(IsolationLevel) Inicia una transacción de
base de datos con el valor
de IsolationLevel
especificado. (Se hereda de
DbConnection).
IDbConnection.CreateCommand Crea y devuelve un objeto
DbCommand asociado a la
conexión actual. (Se hereda
de DbConnection).
La funcionalidad de la clase SQLConnection se divide en varias categorías:
Se crea o se abre un archivo de base de datos SQL local mediante una llamada al
método open() o a la instancia de SQLConnection en la propiedad sqlConnection
de SQLStatement.
La clase SQLConnection también permite utilizar declaraciones SQL. Incluye
además un mecanismo para ejecutar varias declaraciones durante una
transacción. Las transacciones se gestionan mediante los métodos begin(),
commit() y rollback(). Además, los métodos setSavepoint(), releaseSavepoint() y
9. rollbackToSavepoint() permiten código para definir y administrar puntos
guardados. Se utilizan para subdividir transacciones en conjuntos de operaciones.
La clase SQLConnection proporciona acceso a la información de esquema de
base de datos de las bases de datos conectadas. Un esquema de base de datos
describe las definiciones de sus tablas, columnas, índices y activadores. Consulte
el método loadSchema() para obtener más información.
La clase SQLConnection permite codificar bases de datos utilizando AES con
CCM. De este modo, se obtiene autenticación y privacidad en los datos. Para
codificar una base de datos, se debe especificar una clave de 16 bytes (mediante
un elemento ByteArray) cuando se crea la base de datos. Más adelante, es posible
cambiar esta clave mediante el método SQLConnection.reencrypt(). La
codificación impone una penalización de rendimiento en la lectura y la escritura de
la base de datos. La codificación se aplica a los datos guardados en el disco, no a
la caché temporal de datos de la memoria. La codificación no se admite en bases
de datos de memoria.
Una instancia de SQLConnection se puede utilizar para recibir notificaciones de
eventos de nivel de base de datos y proporcionar control de configuración para
todos los aspectos de una base de datos, a saber, el tamaño de las páginas en
caché, la cancelación de procedimientos o las opciones de ejecución de
declaraciones.
Una instancia de SQLConnection se ejecuta en uno de estos dos modos distintos de
ejecución: asíncrono y sincrónico. Para utilizar la ejecución sincrónica, utilice el método
open() para conectarse con la base de datos principal de la instancia de SQLConnection.
Para utilizar la ejecución asíncrona, utilice el método openAsync() para conectarse con la
base de datos principal de la instancia.
Si utiliza la ejecución asíncrona, se emplean detectores de eventos o instancias de
Responder para determinar cuándo la operación falla o se realiza correctamente. Las
operaciones se ejecutan en segundo plano y no en el proceso de la aplicación principal,
por lo que la aplicación sigue ejecutándose y responde ante la interacción del usuario sin
interferir con las operaciones de bases de datos que se estén llevando a cabo. Cada
instancia asíncrona de SQLConnection ejecuta declaraciones SQL en su propio
subproceso.
En el modo de ejecución asíncrono, las operaciones concretas se inician llamando al
método correspondiente. Para detectar la finalización correcta (o fallida) de la operación,
se registra un detector para el evento adecuado. Cada operación está asociada a un
evento que se distribuye cuando se realiza correctamente; por ejemplo, si un método
openAsync() se ejecuta sin errores (cuando se abre la conexión con la base de datos), se
distribuye el evento open. Si la operación falla, se distribuye un evento error. La instancia
de SQLError de la propiedad error del objeto SQLErrorEvent contiene información sobre
el error específico, incluida la operación que intentaba realizarse en ese momento y el
motivo del fallo.
Cuando se utiliza la ejecución sincrónica, no es necesario registrar detectores de eventos
para determinar si una operación ha fallado o si se ha realizado correctamente. Para
identificar los errores, encierre las declaraciones de emisión de errores en un bloque
try..catch. Como las operaciones sincrónicas se ejecutan en el proceso principal, todas las
funciones de la aplicación (incluido el refresco de pantalla o la interacción del teclado y el
10. ratón) se detiene mientras se ejecutan las operaciones de base de datos. Si las
operaciones son demasiado largas, las consecuencias en el rendimiento de la aplicación
son evidentes.
Descripción
El. NET Framework para SQL Server utiliza su propio protocolo para comunicarse con
SQL Server. Es ligero y funciona bien ya que está optimizado para acceder a un servidor
SQL Server directamente, sin la adición de un OLE DB o el Open Database Connectivity
(ODBC) de la capa.
Este es el número uno para usar si quieres que tu. NET aplicación o página web para
conectarse a un servidor SQL Server.
Un objeto SqlConnection representa una sesión única a una fuente de datos de SQL
Server. Con un sistema de base de datos cliente / servidor, que es equivalente a una
conexión de red al servidor. SqlConnection se utiliza junto con SqlDataAdapter y
SqlCommand para aumentar el rendimiento cuando se conecta a una base de datos de
Microsoft SQL Server.
Cuando se crea una instancia de SqlConnection, todas las propiedades se ajustan a sus
valores iniciales.
Si la conexión SqlConnection está fuera de ámbito, no se cerrará. Por lo tanto, es
preciso cerrar explícitamente la conexión llamando a Close o Dispose. Cierre y botar son
funcionalmente equivalentes. Si el valor de la agrupación de conexiones Pooling se
establece en true o yes, la conexión subyacente se devuelve a la agrupación de
conexiones. Por otro lado, si Pooling se establece en falso o no, la conexión subyacente
al servidor es realmente cerrado.
Para garantizar que las conexiones están siempre cerradas, abrir la conexión en el
interior de un bloque using. Así, asegura que la conexión se cierra automáticamente
cuando el código sale del bloque.