如何在 C# 中更改 Sqlite 数据库的“journal_mode”

ran*_*420 5 c# sqlite insert sqlite-journal-mode

按照 Sqlite 的PRAGMA的说明,我发现PRAGMA schema.journal_mode;改变了 journal_mode 并给出了我选择的选项off来提高插入功能的性能。我写:

SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;PRAGMA Schema.journal_mode=off;");
Run Code Online (Sandbox Code Playgroud)

它打开一个名为的数据库MyDatabase.sqlite和命令

PRAGMA Schema.journal_mode=off;
Run Code Online (Sandbox Code Playgroud)

最后写的,我相信关闭了sqlite数据库的日志,但我不知道如何去做,如果这是正确的方法,那么我做错了什么,因为我看不到任何变化添加 PRAGMA 命令后的性能。

我从Tigran's Blog Post on Sqlite 中引用的链接下载了 Sqlite 库

Ňɏs*_*arp 5

PRAGMA关键字不适用于连接字符串。正确的连接字符串语法是:

SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=MyDatabase.sqlite;Version=3;journal mode=Off;");
Run Code Online (Sandbox Code Playgroud)

发现这些的一种方法是使用SQLiteConnectionStringBuilder对象:

SQLiteConnectionStringBuilder lcb = new SQLiteConnectionStringBuilder();
lcb.JournalMode = SQLiteJournalModeEnum.Off;
lcb.DataSource = sqlFile;
lcb.Version = 3;

string myLtConnStr = lcb.ConnectionString;
Run Code Online (Sandbox Code Playgroud)

结果:

"日志模式=关闭;数据源=\"C:\SQLite Dbs\mydata.db\";版本=3"

一些 DB 提供程序有许多选项——特别是关于 DateTime 处理和选项——可以通过这种方式切换。一旦你知道了语法,你就可以省略该ConnectionStringBuilder对象。