繁体   English   中英

WP8的SQLite插入问题

[英]SQLite insert issue with WP8

我正在为Windows Phone 8开发一个应用程序,并且正在使用SQLite来存储数据(这两个领域都是我的新手),并且在尝试插入数据时遇到了问题。 对于我的解决方案,我使用的是MVVM模式,所以我认为我的insert方法做错了,因为我尝试使用适用于所有Model类的泛型类型对CRUD操作进行编码,而不是使用6-7种插入方法对于每个Model类,或者这就是我在使用ActionCommand的保存按钮中使用insert方法的方式。 我完全迷失了这一切。 我进行了调试,从我可以看到的连接等方面来看,还不错。

这是我尝试插入时收到的消息;

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)

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

public void Insert<T>(T obj) where T : new()
{
    using (var conn = new SQLiteConnection(App.ConnectionString))
    {
        conn.RunInTransaction(() =>
    {
        conn.Insert(obj);
        });
    }
}

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

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,但是当我尝试ExecuteNonQuery(obj); 在insert方法中,我收到一条错误消息,提示ExecuteNonQuery不接受1个参数。 我是否需要使用该内容或某些内容更新SQLite.cs类?

谢谢。

好的,我想我已经解决了。 我再放入一些TRY-CATCHES,并注意到它实际上并不是在创建我的表,所以它无处可插入数据。 我认为造成这种情况的原因是,我在通过传递模型类作为类型时; 它以某种方式将其弄乱了,所以我为Models文件夹添加了一个use,然后将其作为类型传递给SleepTrackerModel,它似乎已经解决了该问题(我希望如此),并且我没有收到更多异常。

试试这个也许可以帮助您(SQLite通用应用程序): http : //depblog.weblogs.us/2015/01/06/sqlite-net-and-sqlite-net-extensions-with-universal-apps/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM