在C#中使用SQLite的Pragma-s

10

我发布了一个问题:

"我的项目有一个C++动态链接库,其中创建了一个使用Share Deny=None的SQLite数据库。这个dll会将数据插入到数据库中,我有一个C#可执行文件需要访问这个数据库并显示它。显示需要以异步方式完成。所以,在连接到SQLite数据库时是否有任何方法可以锁定表或数据库。如果可能的话,有人可以给我提供链接或示例,说明如何实现吗?"

针对这个问题,我得到了一个回复是使用Pragma-s。有人可以告诉我如何在C#中实现SQLite的Pragma-s吗?


为什么不在那里直接问呢?http://stackoverflow.com/questions/2286772/lock-a-sqlite-database-for-reading-from-c - Shoban
@subbu:你提出问题才过去了25分钟,请耐心等待。 - sharptooth
1个回答

21

Pragmas可以在你的连接字符串中设置。

例如:
String conString = "Data Source=filename;Version=3;PRAGMA locking_mode = NORMAL;"

你可以在连接字符串中附加多个pragma。


我感到困惑,因为这似乎不起作用... 数据源=Test.db;version=3;PRAGMA RECURSIVE_TRIGGERS=1;" 你有什么想法吗?为什么会这样? - Mark A. Donohoe
9
我曾成功地在连接字符串中使用了不带“PRAGMA”关键字的 pragma-s,例如这样:"Data Source={0};Version=3;Synchronous=OFF;Journal Mode=WAL;" - Dan Mirescu
1
同步=关闭;日志模式=WAL;做到了,非常感谢。现在速度增加了10倍以上。 - EKanadily
以下是 System.Data.SQLite 支持的连接字符串参数参考:https://learn.microsoft.com/en-us/dotnet/api/microsoft.data.sqlite.sqliteconnectionstringbuilder?view=msdata-sqlite-6.0.0 - Yarek T

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接