Bagikan melalui


String koneksi

String koneksi digunakan untuk menentukan cara menyambungkan ke database. String koneksi di Microsoft.Data.Sqlite mengikuti sintaks ADO.NET standar sebagai daftar kata kunci dan nilai yang dipisahkan titik koma.

Kata Kunci

Kata kunci string koneksi berikut dapat digunakan dengan Microsoft.Data.Sqlite:

Sumber data

Jalur ke file database. DataSource (tanpa spasi) dan Filename adalah alias dari kata kunci ini.

SQLite memperlakukan jalur relatif terhadap direktori kerja saat ini. Jalur absolut juga dapat ditentukan.

Jika kosong, SQLite membuat database sementara pada disk yang dihapus saat koneksi ditutup.

Jika :memory:, database dalam memori digunakan. Untuk informasi selengkapnya, lihat Database Dalam Memori.

Jalur yang dimulai dengan string substitusi diperlakukan sama dengan |DataDirectory| jalur relatif. Jika diatur, jalur dibuat relatif terhadap nilai properti domain aplikasi DataDirectory.

Kata kunci ini juga mendukung Nama File URI.

Mode

Mode koneksi.

Nilai Deskripsi
ReadWriteCreate Membuka database untuk membaca dan menulis, dan membuatnya jika tidak ada. Ini adalah default.
ReadWrite Membuka database untuk membaca dan menulis.
Baca Saja Membuka database dalam mode baca-saja.
Memori Membuka database dalam memori.

Cache

Mode penembolokan yang digunakan oleh koneksi.

Nilai Deskripsi
Default Menggunakan mode default pustaka SQLite dasar. Ini adalah default.
Privat Setiap koneksi menggunakan cache privat.
Bersama Koneksi berbagi cache. Mode ini dapat mengubah perilaku transaksi dan penguncian tabel.

Kata sandi

Kunci enkripsi kunci. Ketika ditentukan, PRAGMA key dikirim segera setelah membuka koneksi.

Peringatan

Kata sandi tidak berpengaruh saat enkripsi tidak didukung oleh pustaka SQLite asli.

Catatan

Kata kunci Kata Sandi ditambahkan dalam versi 3.0.

Kunci Asing

Nilai yang menunjukkan apakah akan mengaktifkan batasan kunci asing.

Catatan

Kata kunci untuk Kunci Asing ditambahkan dalam versi 3.0.

Nilai Deskripsi
Benar Mengirim PRAGMA foreign_keys = 1 segera setelah membuka koneksi.
Salah Mengirim PRAGMA foreign_keys = 0 segera setelah membuka koneksi.
(kosong) Tidak mengirim PRAGMA foreign_keys. Ini adalah default.

Tidak perlu mengaktifkan kunci asing jika, seperti di e_sqlite3, SQLITE_DEFAULT_FOREIGN_KEYS digunakan untuk mengkompilasi pustaka SQLite asli.

Pemicu Berulang

Nilai yang menunjukkan apakah akan mengaktifkan pemicu berulang.

Catatan

Kata kunci Pemicu Berulang ditambahkan dalam versi 3.0.

Nilai Deskripsi
Benar Mengirim PRAGMA recursive_triggers segera setelah membuka koneksi.
Salah Tidak mengirim PRAGMA recursive_triggers. Ini adalah default.

Waktu Habis Default

Batas waktu default (dalam detik) untuk menjalankan perintah. Nilai default adalah 30. Batas Waktu Perintah adalah alias dari kata kunci ini.

Nilai ini dapat ditimpa menggunakan DefaultTimeout yang pada gilirannya dapat ditimpa menggunakan CommandTimeout.

Catatan

Kata kunci Batas Waktu Default ditambahkan di versi 6.0.

Penggabungan

Nilai yang menunjukkan apakah koneksi akan digabungkan.

Catatan

Kata kunci Penggabungan ditambahkan dalam versi 6.0.

Nilai Deskripsi
Benar Koneksi akan digabungkan. Ini adalah default.
Salah Koneksi tidak akan digabungkan.

Vfs

Nilai yang menunjukkan implementasi mana dari sistem file virtual (VFS) yang akan digunakan. Platform akan menggunakan VFS bawaan ketika kosong atau tidak ditentukan.

Catatan

Kata kunci Vfs ditambahkan dalam versi 10.0.

Penyusun string koneksi

Anda dapat menggunakan SqliteConnectionStringBuilder sebagai cara berjenis kuat untuk membuat string koneksi. Ini juga dapat digunakan untuk mencegah serangan injeksi string koneksi.

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

Contoh

Dasar

String koneksi dasar dengan cache bersama untuk konkurensi yang ditingkatkan.

Perhatian

Mencampur mode cache bersama dan pengelogan write-ahead tidak disarankan. Untuk performa optimal, hapus Cache=Shared saat database dikonfigurasi untuk menggunakan pengelogan write-ahead.

Data Source=Application.db;Cache=Shared

Dienkripsi

Database terenkripsi.

Data Source=Encrypted.db;Password=MyEncryptionKey

Baca-saja

Database baca-saja yang tidak dapat dimodifikasi oleh aplikasi.

Data Source=Reference.db;Mode=ReadOnly

Dalam memori

Database privat dalam memori.

Data Source=:memory:

Dapat dibagikan dalam memori

Database dalam memori yang dapat dibagikan yang diidentifikasi dengan nama Sharable.

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

Lihat juga