WIndows 8.1 windows存储app sqlite Update语句

时间:2014-01-25 11:20:58

标签: c# sqlite winrt-xaml visual-studio-2013 windows-8.1

我无法使用'db.update'语句。当我尝试读取数据库时,它总是读取从else语句插入的第一个数据。我已经跟踪了我的程序并且它确实到达了db.update并且传递的值是正确的但是当我读取表时值不会改变。

我正在使用Visual Studio 2013在Windows 8.1中创建一个Windows应用商店

这是我的代码

LastRead dataref = new LastRead { passID = U_pick.chapterID, chapterLastRead = U_pick.chapterNumber, passtitle = mTitle };
        var dbpath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Drive.db");
        using (var db = new SQLite.SQLiteConnection(dbpath))
        {
            try
            {
                var lastReadChapter = (db.Table<LastRead>().Where(c => c.passtitle == mTitle)).SingleOrDefault();
                if (lastReadChapter != null)
                {
                    lastReadChapter.chapterLastRead = U_pick.chapterNumber;
                    lastReadChapter.passtitle = U_pick.chapterTitle;
                    lastReadChapter.passID = U_pick.chapterID;
                    db.Update(lastReadChapter);
                }
                else
                {
                    db.Insert(dataref);
                }
            }
            catch(Exception ex)
            {
                //excepetion msg
            }


        }

1 个答案:

答案 0 :(得分:0)

这是因为您正在通过SingleOrDefault()函数进行查询。