Windows 8 - sqlite问题 - 更新数据库表值 - 属性问题

时间:2012-08-30 14:29:48

标签: c# sqlite windows-8

我正在使用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文件设置权限,以实现读写功能。

任何人都可以为此指导我吗?

1 个答案:

答案 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(); 
    }
} 

并记得使用参数化命令。