首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WP8的SQLite插入问题

WP8的SQLite插入问题
EN

Stack Overflow用户
提问于 2015-02-24 04:21:44
回答 2查看 331关注 0票数 0

我正在为Windows phone8开发一个应用程序,我正在使用SQLite来存储数据(我对这两个领域都是新手),在尝试插入数据时遇到了一个问题。对于我的解决方案,我使用了MVVM模式,所以我想可能我的插入方法做错了,因为我试图使用泛型类型来编写CRUD操作,这将适用于所有的模型类,而不是为每个模型类使用6-7个插入方法,或者可能是因为我在保存按钮中使用插入方法的方式使用了一个ActionCommand。我完全搞不懂这一切。我已经添加了调试,从我所能看到的我的连接,等等都是好的。

下面是我尝试插入时得到的消息;

代码语言:javascript
运行
复制
A first chance exception of type 'SQLite.SQLiteException' occurred in SleepTracker.DLL
   at SQLite.SQLite3.Prepare2(Database db, String query)
   at SQLite.PreparedSqlLiteInsertCommand.Prepare()
   at SQLite.PreparedSqlLiteInsertCommand.ExecuteNonQuery(Object[] source)
   at SQLite.SQLiteConnection.Insert(Object obj, String extra, Type objType)
   at SQLite.SQLiteConnection.Insert(Object obj)
   at SleepTracker.DatabaseResources.DBHelper.<>c__DisplayClass4`1.<Insert>b__0()
   at SQLite.SQLiteConnection.RunInTransaction(Action action)
   at SleepTracker.DatabaseResources.DBHelper.Insert[T](T obj)

这是我的insert的代码以及我是如何使用它的;

代码语言:javascript
运行
复制
public void Insert<T>(T obj) where T : new()
{
    using (var conn = new SQLiteConnection(App.ConnectionString))
    {
        conn.RunInTransaction(() =>
    {
        conn.Insert(obj);
        });
    }
}

以及我如何在我的按钮中使用它;

代码语言:javascript
运行
复制
public ICommand SaveButtonCommand
{
    get
    {
        return _saveButtonCommand
               ?? (_saveButtonCommand = new Resources.ActionCommand(() =>
               {
                   Models.SleepTrackerModel insertSleepData = new Models.SleepTrackerModel
                   {
                       Date = SleepDate,
                       SleepTime = SleepTime,
                       WakeTime = WakeTime,
                       Duration = SleepDuration,
                       Rating = SleepRating
                    };
                    _dbHelper.Insert<Models.SleepTrackerModel>(insertSleepData);
                }));
     }
}

我完全不知道如何解决这个问题,所以任何帮助都是很好的。

此外,我也尝试过遵循本教程;http://dotnetslackers.com/articles/silverlight/Windows-Phone-7-Native-Database-Programming-via-Sqlite-Client-for-Windows-Phone.aspx,但是当我在insert方法中尝试ExecuteNonQuery(obj);时,我得到一个错误,指出ExecuteNonQuery不接受1个参数。我需要用这个或者别的什么来更新SQLite.cs类吗?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2015-02-24 05:38:05

好了,我想我已经解决了。我又添加了几个TRY-CATCHES,注意到它实际上并没有创建我的表,所以它没有地方插入数据。我认为导致这一问题的原因是当我通过no传递我的模型类作为类型时;它以某种方式搞乱了它,所以我只是为Models文件夹添加了一个使用,然后只是传递了SleepTrackerModel作为类型,它似乎已经解决了这个问题(我希望如此),我没有得到更多的异常。

票数 1
EN

Stack Overflow用户

发布于 2015-02-24 04:26:41

试试这个或许能帮到你(SQLite通用应用):http://depblog.weblogs.us/2015/01/06/sqlite-net-and-sqlite-net-extensions-with-universal-apps/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28682702

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档