Compartir a través de


Cadenas de conexión

Una cadena de conexión que se usa para especificar cómo conectarse a la base de datos. Las cadenas de conexión de Microsoft.Data.SQLite siguen la sintaxis de ADO.NET estándar como una lista de palabras clave y valores separados por punto y coma.

Palabras clave

Se pueden usar las palabras clave de cadena de conexión siguientes con Microsoft.Data.SQLite:

Origen de datos

Ruta de acceso al archivo de base de datos. DataSource (sin espacio) y Filename son alias de esta palabra clave.

SQLite trata las rutas de acceso relativas al directorio de trabajo actual. También se pueden especificar rutas de acceso absolutas.

Si está vacío, SQLite crea una base de datos temporal en disco que se elimina al cerrar la conexión.

Si es :memory:, se usa una base de datos en memoria. Para más información, vea Bases de datos en memoria.

Las rutas de acceso que comienzan con la cadena de sustitución |DataDirectory| se tratan igual que las rutas de acceso relativas. Si se establecen, las rutas de acceso son relativas al valor de propiedad de dominio de aplicación DataDirectory.

Esta palabra clave también admite nombres de archivo de URI.

Modo

Modo de conexión.

Valor Descripción
ReadWriteCreate Abre la base de datos para lectura y escritura, y la crea si no existe. Este es el valor predeterminado.
ReadWrite Abre la base de datos para lectura y escritura.
ReadOnly Abre la base de datos en modo de solo lectura.
Memoria Abre una base de datos en memoria.

instancias y claves

Modo de almacenamiento en caché que usa la conexión.

Valor Descripción
Default Usa el modo predeterminado de la biblioteca de SQLite subyacente. Este es el valor predeterminado.
Private Cada conexión usa una caché privada.
Shared Las conexiones comparten una caché. Este modo puede cambiar el comportamiento del bloqueo de transacciones y tablas.

Contraseña

La clave de cifrado. Cuando se especifica, PRAGMA key se envía inmediatamente después de abrir la conexión.

Advertencia

La contraseña no tiene ningún efecto cuando la biblioteca de SQLite nativa no admite el cifrado.

Nota

La palabra clave Contraseña se agregó en la versión 3.0.

Claves externas

Un valor que indica si se deben habilitar restricciones de clave externa.

Nota

La palabra clave Claves externas se agregó en la versión 3.0.

Valor Descripción
True Se envía PRAGMA foreign_keys = 1 inmediatamente después de abrir la conexión.
False Se envía PRAGMA foreign_keys = 0 inmediatamente después de abrir la conexión.
(vacío) No se envía PRAGMA foreign_keys. Este es el valor predeterminado.

No es necesario habilitar las claves externas si, como en e_sqlite3, se ha usado SQLITE_DEFAULT_FOREIGN_KEYS para compilar la biblioteca nativa de SQLite.

Desencadenadores recursivos

Un valor que indica si se van a habilitar los desencadenadores recursivos.

Nota

La palabra clave Desencadenadores recursivos se agregó en la versión 3.0.

Valor Descripción
True Se envía PRAGMA recursive_triggers inmediatamente después de abrir la conexión.
False No se envía PRAGMA recursive_triggers. Este es el valor predeterminado.

Tiempo de espera predeterminado

Tiempo de espera predeterminado (en segundos) para ejecutar comandos. El valor predeterminado es 30. Tiempo de espera predeterminado es un alias de esta palabra clave.

Este valor se puede invalidar mediante DefaultTimeout el cual, a su vez, se puede invalidar mediante CommandTimeout.

Nota

La palabra clave Tiempo de espera predeterminado se agregó en la versión 6.0.

Agrupación

Valor que indica si la conexión se agrupará.

Nota

La palabra clave Agrupación se agregó en la versión 6.0.

Valor Descripción
True La conexión se agrupará. Este es el valor predeterminado.
False La conexión no se agrupará.

Generador de cadenas de conexión

Puede usar SqliteConnectionStringBuilder como una manera fuertemente tipada de crear cadenas de conexión. También se pueda usar para evitar ataques de inyección de cadenas de conexión.

var connectionString = new SqliteConnectionStringBuilder(baseConnectionString)
{
    Mode = SqliteOpenMode.ReadWriteCreate,
    Password = password
}.ToString();

Importante

Microsoft recomienda usar el flujo de autenticación más seguro disponible. Si se conecta a Azure SQL, el método de autenticación recomendado es Identidades administradas para recursos de Azure.

Ejemplos

Básico

Una cadena de conexión básica con una memoria caché compartida para mejorar la simultaneidad.

Precaución

No se recomienda mezclar el modo de caché compartida y el registro de escritura anticipada. Para obtener un rendimiento óptimo, quite Cache=Shared cuando la base de datos esté configurada para usar el registro de escritura anticipada.

Data Source=Application.db;Cache=Shared

Cifrados

Una base de datos cifrada.

Data Source=Encrypted.db;Password=MyEncryptionKey

De sólo lectura

Una base de datos de solo lectura que la aplicación no puede modificar.

Data Source=Reference.db;Mode=ReadOnly

En memoria

Una base de datos en memoria privada.

Data Source=:memory:

En memoria que se pueda compartir

Una base de datos en memoria que se puede compartir y que se identifica mediante el nombre Compartible.

Data Source=Sharable;Mode=Memory;Cache=Shared

Vea también