我正在開發一個Windows Phone 8的應用程序,我正在使用SQLite來存儲數據(我對這兩個區域都是新手),並且在嘗試使用SQLite時遇到了問題插入數據。對於我的解決方案,我使用MVVM模式,所以我想也許我的插入方法做錯了,因爲我試圖使用泛型類型編碼我的CRUD操作,這些類型可以與所有Model類一起使用,而不是使用6-7插入方法對於每個Model類,或者可能是我在使用ActionCommand的保存按鈕中使用插入方法的方式。我完全失去了這一切。我已經進行了調試,並從我可以看到我的連接等等都很好。與WP8的SQLite插入問題
下面是我嘗試插入時得到的消息;
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);在插入方法中,我得到一個錯誤,說ExecuteNonQuery不帶1個參數。我需要用這個還是其他的東西來更新SQLite.cs類?
謝謝。
看看異常的細節。它將包含一個來自SQLite的錯誤字符串,解釋出錯的地方。 – Cameron 2015-02-23 21:42:48