我正在使用c#,XAML和SQLite为Windows 8开发一个metro风格的应用程序。目前我正面临一个问题。我正在使用更新或存储一些细节,但当我尝试使用下面的代码将数据写入SQLite时
StorageFolder DataFolder = await Package.Current.InstalledLocation.GetFolderAsync("data");
StorageFile DataFile = await DataFolder.GetFileAsync("Test.sqlite");
if ( DataFile != null)
{
var db = new SQLite.SQLiteConnection(DataFile .Path, SQLiteOpenFlags.ReadWrite);
SQLiteCommand cmd = new SQLiteCommand(db);
cmd.CommandText = "UPDATE Test SET Value=1000 WHERE Id = 5";
cmd.ExecuteNonQuery();
}
但是当程序调试时和光标出现时“cmd.ExecuteNonQuery()”
发生了'SQLite.SQLiteException'类型的异常 SQLite_Sample.exe但未在用户代码中处理
其他信息:ReadOnly如果有一个处理程序 例外,程序可以安全地继续。
我想以编程方式为此SQLite文件设置权限,以实现读写功能。
任何人都可以为此指导我吗?
答案 0 :(得分:0)
我认为问题在于你没有打开连接。
if ( DataFile != null)
{
using (var db = new SQLite.SQLiteConnection(DataFile.Path, SQLiteOpenFlags.ReadWrite))
{
SQLiteCommand cmd = new SQLiteCommand(db);
cmd.CommandText = "UPDATE Test SET Value=1000 WHERE Id = 5";
db.Open();
cmd.ExecuteNonQuery();
}
}
并记得使用参数化命令。