Verbindungszeichenfolgen
Mit einer Verbindungszeichenfolge wird angegeben, wie eine Verbindung zur Datenbank hergestellt werden soll. Verbindungszeichenfolgen in Microsoft.Data.Sqlite folgen als durch Semikolons getrennte Liste von Schlüsselwörtern und Werten auf die ADO.NET-Standardsyntax.
Stichwörter
Die folgenden Schlüsselwörter für Verbindungszeichenfolgen können mit Microsoft.Data.Sqlite verwendet werden:
Datenquelle
Der Pfad zur Datenbankdatei. DataSource (ohne Leerzeichen) und Filename (Dateiname) sind Aliase dieses Schlüsselworts.
SQLite behandelt Pfade relativ zum aktuellen Arbeitsverzeichnis. Absolute Pfade können ebenfalls angegeben werden.
Im Falle von empty (leer) erstellt SQLite eine temporäre Datenbank auf dem Datenträger, die gelöscht wird, wenn diese Verbindung geschlossen wird.
Bei :memory:
wird eine In-Memory-Datenbank verwendet. Weitere Informationen finden Sie unter In-Memory-Datenbanken.
Pfade, die mit der Ersatzzeichenfolge |DataDirectory|
beginnen, werden wie relative Pfade behandelt. Wenn dies festgelegt ist, werden Pfade relativ zum Eigenschaftswert der Anwendungsdomäne für DataDirectory erstellt.
Dieses Schlüsselwort unterstützt auch URI-Dateinamen.
Modus
Dies ist der Verbindungsmodus.
Wert | Beschreibung |
---|---|
ReadWriteCreate | Hiermit wird die Datenbank für Lese- und Schreibvorgänge geöffnet und ggf. erstellt, wenn sie nicht vorhanden ist. Dies ist die Standardeinstellung. |
ReadWrite | Hiermit wird die Datenbank für Lese- und Schreibvorgänge geöffnet. |
ReadOnly | Hiermit wird die Datenbank im schreibgeschützten Modus geöffnet. |
Arbeitsspeicher | Hiermit wird eine In-Memory-Datenbank geöffnet. |
cache
Hierbei handelt es sich um den von der Verbindung verwendeten Cachemodus.
Wert | Beschreibung |
---|---|
Standard | Hiermit wird der Standardmodus der zugrunde liegenden SQLite-Bibliothek verwendet. Dies ist die Standardeinstellung. |
Private | Jede Verbindung verwendet einen privaten Cache. |
Shared | Verbindungen nutzen einen Cache gemeinsam. Dieser Modus kann das Verhalten der Transaktion und der Tabellensperrung ändern. |
Kennwort
Der Verschlüsselungsschlüssel. Wenn dieser angegeben ist, wird PRAGMA key
unmittelbar nach dem Öffnen der Verbindung gesendet.
Warnung
Das Kennwort hat keine Auswirkung, wenn die Verschlüsselung von der nativen SQLite-Bibliothek nicht unterstützt wird.
Hinweis
Das Schlüsselwort „Password“ wurde in Version 3.0 hinzugefügt.
Fremdschlüssel
Dieser Wert gibt an, ob Fremdschlüsseleinschränkungen aktiviert werden sollen.
Hinweis
Das Schlüsselwort „foreign_keys“ wurde in Version 3.0 hinzugefügt.
Wert | Beschreibung |
---|---|
True | Hier wird PRAGMA foreign_keys = 1 unmittelbar nach dem Öffnen der Verbindung gesendet. |
False | Hier wird PRAGMA foreign_keys = 0 unmittelbar nach dem Öffnen der Verbindung gesendet. |
(leer) | Hier wird PRAGMA foreign_keys nicht gesendet. Dies ist die Standardeinstellung. |
Fremdschlüssel müssen nicht aktiviert werden, wenn, wie in e_sqlite3, SQLITE_DEFAULT_FOREIGN_KEYS
zum Kompilieren der nativen SQLite-Bibliothek verwendet wurde.
Rekursive Trigger
Mit diesem Wert wird angegeben, ob rekursive Trigger aktiviert werden sollen.
Hinweis
Das Schlüsselwort „recursive_triggers“ wurde in Version 3.0 hinzugefügt.
Wert | Beschreibung |
---|---|
True | Hier wird PRAGMA recursive_triggers unmittelbar nach dem Öffnen der Verbindung gesendet. |
False | Hier wird PRAGMA recursive_triggers nicht gesendet. Dies ist die Standardeinstellung. |
Standardzeitlimit
Das Standardtimeout (in Sekunden) für die Ausführung von Befehlen. Der Standardwert ist 30. Das Befehlstimeout ist ein Alias für dieses Schlüsselwort.
Dieser Wert kann mit DefaultTimeout überschrieben werden, der wiederum mit CommandTimeout überschrieben werden kann.
Hinweis
Das Schlüsselwort „Default Timeout“ wurde in Version 6.0 hinzugefügt.
Pooling
Ein Wert, der angibt, ob die Verbindung gepoolt wird.
Hinweis
Das Schlüsselwort „Pooling“ wurde in Version 6.0 hinzugefügt.
Wert | Beschreibung |
---|---|
True | Die Verbindung wird gepoolt. Dies ist die Standardeinstellung. |
False | Die Verbindung wird nicht gepoolt. |
Vfs
Dieser Wert gibt an, welche VFS-Implementierung (Virtual File System, virtuelles Dateisystem) verwendet werden soll. Wenn der Wert leer oder nicht angegeben ist, wird das Standard-VFS für die Plattform verwendet.
Hinweis
Das Vfs-Schlüsselwort wurde in Version 10.0 hinzugefügt.
Verbindungszeichenfolgen-Generator
Sie können SqliteConnectionStringBuilder als stark typisierte Methode zum Erstellen von Verbindungszeichenfolgen verwenden. Außerdem können damit Angriffe durch das Einschleusen von Verbindungszeichenfolgen verhindert werden.
var connectionString = new SqliteConnectionStringBuilder(baseConnectionString)
{
Mode = SqliteOpenMode.ReadWriteCreate,
Password = password
}.ToString();
Beispiele
Standard
Dies ist eine einfache Verbindungszeichenfolge mit freigegebenem Cache für verbesserte Parallelität.
Achtung
Es wird davon abgeraten, den Modus mit gemeinsamem Cache und die Write-Ahead-Protokollierung zu kombinieren. Zum Erzielen einer optimalen Leistung entfernen Sie Cache=Shared
, wenn die Datenbank zur Verwendung der Write-Ahead-Protokollierung konfiguriert ist.
Data Source=Application.db;Cache=Shared
Verschlüsselt
Dies ist eine verschlüsselte Datenbank.
Data Source=Encrypted.db;Password=MyEncryptionKey
Schreibgeschützt
Dies ist eine schreibgeschützte Datenbank, die nicht von der App geändert werden kann.
Data Source=Reference.db;Mode=ReadOnly
Im Arbeitsspeicher
Dies ist eine private In-Memory-Datenbank.
Data Source=:memory:
Sharable In-Memory
Dies ist eine In-Memory-Datenbank, die wie anhand des Namens Sharable bereits zu erkennen ist freigegeben werden kann.
Data Source=Sharable;Mode=Memory;Cache=Shared