2016-11-24 17 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)