Partager via


Chaînes de connexion

Une chaîne de connexion est utilisée pour spécifier le mode de connexion à la base de données. Les chaînes de connexion dans Microsoft.Data.Sqlite suivent la syntaxe ADO.NET standard sous la forme d’une liste de mots clés et de valeurs séparés par des points-virgules.

Mots clés

Les mots clés de chaîne de connexion suivants peuvent être utilisés avec Microsoft.Data.Sqlite :

Source de données

Chemin d'accès au fichier de base de données. DataSource (sans espace) et Filename sont des alias de ce mot clé.

SQLite traite les chemins par rapport au répertoire de travail actif. Vous pouvez également spécifier des chemins absolus.

Si la valeur est vide, SQLite crée une base de données temporaire sur disque, qui est supprimée à la fermeture de la connexion.

Si :memory: est spécifié, une base de données en mémoire est utilisée. Pour plus d’informations, consultez Bases de données en mémoire.

Les chemins qui commencent par la chaîne de substitution |DataDirectory| sont traités de la même manière que les chemins relatifs. S’ils sont définis, les chemins sont relatifs à la valeur de DataDirectory dans la propriété de domaine de l’application.

Ce mot clé prend également en charge les noms de fichiers d’URI.

Mode

Mode de connexion.

Valeur Description
ReadWriteCreate Ouvre la base de données pour la lecture et l’écriture, et la crée si elle n’existe pas. Il s’agit de la valeur par défaut.
Lecture/écriture Ouvre la base de données pour la lecture et l’écriture.
Lecture seule Ouvre la base de données en mode lecture seule.
Mémoire Ouvre une base de données en mémoire.

Cache

Mode de mise en cache utilisé par la connexion.

Valeur Description
Default Utilise le mode par défaut de la bibliothèque SQLite sous-jacente. Il s’agit de la valeur par défaut.
Privées Chaque connexion utilise un cache privé.
Partagé Les connexions partagent un cache. Ce mode peut changer le comportement du verrouillage des transactions et des tables.

Mot de passe

Clé de chiffrement. Quand il est spécifié, PRAGMA key est envoyé immédiatement après l’ouverture de la connexion.

Avertissement

Le mot de passe n’a aucun effet quand le chiffrement n’est pas pris en charge par la bibliothèque SQLite native.

Notes

Le mot clé relatif au mot de passe a été ajouté dans la version 3.0.

Clés étrangères

Valeur indiquant si les contraintes de clé étrangère doivent être activées ou non.

Notes

Le mot clé relatif aux clés étrangères a été ajouté dans la version 3.0.

Valeur Description
True Envoie PRAGMA foreign_keys = 1 immédiatement après l’ouverture de la connexion.
False Envoie PRAGMA foreign_keys = 0 immédiatement après l’ouverture de la connexion.
(empty) N’envoie pas PRAGMA foreign_keys. Il s’agit de la valeur par défaut.

Il n’est pas nécessaire d’activer des clés étrangères si, par exemple dans e_sqlite3, SQLITE_DEFAULT_FOREIGN_KEYS a été utilisé pour compiler la bibliothèque SQLite native.

Déclencheurs récursifs

Valeur qui indique si les déclencheurs récursifs doivent être activés.

Notes

Le mot clé relatif aux déclencheurs récursifs a été ajouté dans la version 3.0.

Valeur Description
True Envoie PRAGMA recursive_triggers immédiatement après l’ouverture de la connexion.
False N’envoie pas PRAGMA recursive_triggers. Il s’agit de la valeur par défaut.

Délai d’expiration par défaut

Délai d’expiration par défaut (en secondes) pour l’exécution des commandes. La valeur par défaut est 30. Command Timeout est un alias de ce mot clé.

Cette valeur peut être remplacée à l’aide de DefaultTimeout qui, à son tour, peut être remplacée à l’aide de CommandTimeout.

Notes

Le mot clé relatif au délai d’expiration par défaut a été ajouté dans la version 6.0.

Pooling

Valeur indiquant si la connexion doit être mise en pool.

Notes

Le mot clé relatif à la mise en pool a été ajouté dans la version 6.0.

Valeur Description
True La connexion est mise en pool. Il s’agit de la valeur par défaut.
False La connexion n’est pas mise en pool.

Générateur de chaînes de connexion

Vous pouvez utiliser SqliteConnectionStringBuilder comme moyen fortement typé de créer des chaînes de connexion. Vous pouvez également l’utiliser pour empêcher les attaques par injection de chaînes de connexion.

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

Important

Microsoft vous recommande d’utiliser le flux d’authentification le plus sécurisé disponible. Si vous vous connectez à Azure SQL, les identités managées pour les ressources Azure sont la méthode d'authentification recommandée.

Exemples

De base

Chaîne de connexion de base avec un cache partagé pour améliorer la concurrence.

Attention

Il est déconseillé de mélanger le mode de cache partagé et la journalisation WAL (Write-Ahead Log). Pour des performances optimales, supprimez Cache=Shared quand la base de données est configurée pour utiliser la journalisation WAL (Write-Ahead Logging).

Data Source=Application.db;Cache=Shared

Chiffré

Base de données chiffrée.

Data Source=Encrypted.db;Password=MyEncryptionKey

Lecture seule

Base de données en lecture seule qui ne peut pas être modifiée par l’application.

Data Source=Reference.db;Mode=ReadOnly

En mémoire

Base de données en mémoire privée.

Data Source=:memory:

En mémoire partageable

Base de données en mémoire partageable, identifiée par le nom Sharable.

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

Voir aussi