2016-11-24 41 views
-1

我正在编写一个使用SQLite作为我的数据库提供程序的C#表单应用程序。 我有一个Checkedlistbox列出了所有的产品,我把检查过的Id读入了一个C#列表。到现在为止还挺好。现在我想从表中选择列表中所有带有Ids的产品(基本上,我想选择已检查的产品)。以前,我已经通过使用: ... where lstids.Contains(p.id)使用LINQ来完成此操作。C#SQLite:如何从表中选择值在c#列表中的值

但在SQLite中,我有点不知所措。我试过以下内容:

string query = "Select * from PRODUCTS where id in "+ lstids; 

但它返回一个空值。

任何想法?

最好的问候,

弗拉维奥茹斯蒂诺

回答

2

要做到正确IN声明SQLLite你需要给它如下:

SELECT * FROM Products WHERE ID in (id1, id2, id3) 

lstids可能是一个listcollection,它的ToString()是没有提供正确的数据。

试一下:

var ids = string.Join(",", lstids.Select(x => x.ToString()).ToArray()); 
string query = string.Format("SELECT * FROM Products WHERE ID in ({0})", ids) 
相关问题