【发布时间】:2014-11-22 20:58:37
【问题描述】:
我在插入这个 sqlite 数据库时遇到了很多麻烦。第一段代码的第一段是我第一次插入的项目,第二段代码是我要插入的项目。我第一次插入一切都很好,我可以很好地检索行,但是第二次我尝试将新项目插入到数据库中它没有更新,而是抛出一个带有消息约束的 sqliteexception。
第一次
GroceriesItemHistory.AddToGroceriesHistory ("Banana");
GroceriesItemHistory.AddToGroceriesHistory ("Apple");
GroceriesItemHistory.AddToGroceriesHistory ("Citrus");
第二次
GroceriesItemHistory.AddToGroceriesHistory ("Banana");
GroceriesItemHistory.AddToGroceriesHistory ("Apple");
GroceriesItemHistory.AddToGroceriesHistory ("Citrus");
GroceriesItemHistory.AddToGroceriesHistory ("Plant");
这里是调用 db 来保存项目的代码
saveHistory.Click += delegate
{
Task<string> result = localDB.SaveGroceriesItemHistory();
Toast.MakeText(this, result.Result, ToastLength.Short).Show();
};
这是插入项目的实际代码
public async Task<string> SaveGroceriesItemHistory()
{
try
{
var dbConn = new SQLiteAsyncConnection(dbPath);
foreach (var historyItem in GroceriesItemHistory.GroceriesHistory)
{
HistoryItem item = new HistoryItem();
item.HistoryItemName = historyItem.Key;
item.NumberOfAddidtions = historyItem.Value;
if(await dbConn.InsertAsync(item) != 0)
await dbConn.UpdateAsync(item);
}
return "GroceriesItemHistory saved!";
}
catch (SQLiteException ex)
{
return ex.Message;
}
}
【问题讨论】:
标签: c# android android-asynctask sqlite