我在Xamarin Forms中使用的sqlite中有以下查询。

allProdsId初始化为:

allProdsId = new List<Products>();


首先,我进行了一个查询,该查询从表产品中检索所有产品ID。然后,我要删除所有已检索到所有ProdId订单的所有订单。

删除查询不起作用。有人可以帮我使用Xamarin形式在sqlite中实现allProdsId子句吗?

allProdsId = _con.Query<Products>("Select ProdId from Products");

con.Execute("DELETE FROM Orders WHERE ProdId = ?", allProdsId);

最佳答案

用逗号分隔所有要删除的ProdId的字符串,然后将其直接插入SQL字符串。

var productIDs = conn.Query<Products>("Select ProdId from Products");
var prodIDCommaString = string.Join(",", productIDs.Select(p => p.ProdId));
var deleteCount = conn.Execute("delete from Products where ProdId in (" + prodIDCommaString + ");");

关于c# - 在sqlite中删除where in子句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46795270/

10-11 05:07