我正在使用SQLite作为我的数据库提供程序编写C#表单应用程序。
我有一个列出所有产品的Checkedlistbox,我将已检查的Id读入c#List。到现在为止还挺好。现在我想从Table PRODUCTS中选择列表中ID的所有产品(基本上,我想选择选中的产品)。以前我使用LINQ使用以下方法完成此操作:
...... where lstids.Contains(p.id)
。
但在SQLite中,我有点失落。我尝试过以下方法:
string query = "Select * from PRODUCTS where id in "+ lstids;
但它返回一个空值。
有什么想法吗?
致以最诚挚的问候,
Flavio Justino
答案 0 :(得分:2)
要在IN
中执行正确的SQLLite
声明,您需要按以下方式提供:
SELECT * FROM Products WHERE ID in (id1, id2, id3)
lstids
可能是list
,collection
而且ToString()
没有提供正确的数据。
试试:
var ids = string.Join(",", lstids.Select(x => x.ToString()).ToArray());
string query = string.Format("SELECT * FROM Products WHERE ID in ({0})", ids)