我在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”)。是的,它抛出异常,但更新数据库后,所以如果我发现异常,它适用于我。我知道它不是一个好这样做的方式,你能建议我这样做的有效方法。 –
如果不知道数据库是如何制作的,很难诊断发生了什么。你可以把数据库模式放入你的问题吗? –