我在Windows應用商店application.I處理SQLite的使用在更新查詢過程中拋出NotSupportedException?
var tagPage = db.QueryAsync<MyModel>("UPDATE MyModel SET Tag =2 WHERE id = 1");
db.UpdateAsync(tagPage);
它輕視SQLite.cs類的NotSupportedException異常在方法
public int Update(object obj, Type objType)
{
if (obj == null || objType == null)
{
return 0;
}
var map = GetMapping(objType);
var pk = map.PK;
if (pk == null)
{
throw new NotSupportedException("Cannot update " + map.TableName + ": it has no PK");
}
var cols = from p in map.Columns
where p != pk
select p;
var vals = from c in cols
select c.GetValue(obj);
var ps = new List<object>(vals);
ps.Add(pk.GetValue(obj));
var q = string.Format("update \"{0}\" set {1} where {2} = ? ", map.TableName, string.Join(",", (from c in cols
select "\"" + c.Name + "\" = ? ").ToArray()), pk.Name);
return Execute(q, ps.ToArray());
}
正在更新在表中的值,因爲我覺得它不會得到主鍵,我在表中提供了主鍵。 我試過它與異步和等待,但沒有用,爲什麼發生?請幫我
你可以添加數據庫模式嗎? –
我們究竟是這麼做的?是否需要添加我們自己的方法來更新SQLite.cs中的值? 我用var conn = new SQLiteConnection(「path」)然後conn.update(「Query」)。是的,它拋出異常,但更新數據庫後,所以如果我發現異常,它適用於我。我知道它不是一個好這樣做的方式,你能建議我這樣做的有效方法。 –
如果不知道數據庫是如何製作的,很難診斷髮生了什麼。你可以把數據庫模式放入你的問題嗎? –