【发布时间】:2018-07-11 04:49:45
【问题描述】:
所以我一直在尝试使用 sqlite-net-pcl,但这似乎无法更新状态...... 在尝试使用测试字符串在某处本地化问题后,它从第一个列表开始,该列表似乎只填充了 0,所以我将它恢复到原来的位置。
public async Task UpdateStatus()
{
var ObjectIDList = await database.QueryAsync<long>("SELECT ObjectID FROM Object WHERE ObjectStatus = 0 OR ObjectStatus = 1");
if (ObjectIDList != null)
{
foreach (long ObjectID in ObjectIDList)
{
byte newStatus = 5;
var result = await database.Table<Object>().Where(i => i.ObjectID == ObjectID).FirstOrDefaultAsync();
if (result != null)
{
result.Objectstatus = newStatus;
await SaveObjectAsync(result);
}
}
}
}
无论我的表中有多少条目,只要对象的状态值中有 0 或 1,它就会用另一个 0 填充列表。
问题
为什么ObjectIDList 总是返回零,即使我在数据库中有很多ObjectStatus = 0 or ObjectStatus = 1 的记录?如果我有 5 条记录,那么它会返回 5 个结果,但使用零而不是实际的 ObjectID。
【问题讨论】:
-
我不明白你的问题。为什么你有
returns?他们之后什么都没有,那么他们的目的是什么? -
糟糕,忘了编辑它们,它们是为了返回测试字符串,已编辑。
-
你的问题是什么?
-
我的问题是是否有一个选项可以在列表中实际保存 ObjectID(而不是它要求的状态),因为 ID 有点像 14325617892 保存的时间;到目前为止,我看到的所有示例都使用 select 指向对象内符合条件的特定元素,它只保存 0 而不是实际值,只要我不知道为什么会这样。
-
ATM 的问题是我后来得到了对象,更改了值并根据这个我无法用这个方法提取的 ID 保存它。
标签: c# sqlite xamarin cross-platform sqlite-net-pcl