Jam*_*mes 4 c# sqlite windows-10 uwp
打开与数据库的连接后,我可以设置一个 PRAGMA,但第二个总是失败。如何使用 SQLite.Net-PCL 3.1.1 设置这两个 PRAGMA?这是用于通用 Windows 平台应用程序。
public static SQLiteConnection Open()
{
if (db == null)
{
var dbPath = Path.Combine(ApplicationData.Current.LocalFolder.Path, DatabaseFileName);
db = new SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), dbPath);
db.Execute("PRAGMA foreign_keys = ON");
db.Execute("PRAGMA journal_mode = WAL");
}
return db;
}
Run Code Online (Sandbox Code Playgroud)
在第二个执行语句之后,我立即从 SQLite 收到一个“行”异常。
请求的堆栈跟踪:
编辑:添加捕获异常的屏幕截图:
在第二个执行语句之后,我立即从 SQLite 收到一个“行”异常。
“行”异常意味着语句返回一行结果,不支持db.Execute。
作为一种解决方法,您可以使用db.CreateCommand来执行该语句:
var dbPath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "MyDB.db");
db = new SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), dbPath);
db.Execute("PRAGMA journal_mode=DELETE");
var cmd=db.CreateCommand("PRAGMA journal_mode=WAL",new object[] { });//use db.CreateCommand
var result=cmd.ExecuteQuery<object>();//execute the command
Run Code Online (Sandbox Code Playgroud)