2016-11-24 2 views
-1

Ich schreibe eine C# Form-Anwendung mit SQLite als meine Datenbank-Provider. Ich habe eine Checkedlistbox, die alle Produkte auflistet und ich lese die geprüften Ids in eine C# -Liste. So weit, ist es gut. Jetzt möchte ich aus Tabelle PRODUKTE alle Produkte mit den IDs aus der Liste auswählen (also grundsätzlich möchte ich die geprüften Produkte auswählen). Zuvor habe ich dies mit LINQ unter Verwendung von: ... where lstids.Contains(p.id).C# SQLite: Wie wähle ich Werte aus der Tabelle, wo Werte in C# Liste sind

Aber in SQLite bin ich irgendwie verloren. Ich habe Folgendes versucht:

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

aber es gibt einen Nullwert zurück.

Irgendwelche Ideen?

Mit freundlichen Grüßen,

Flavio Justino

Antwort

2

in SQLLite richtige IN Aussage machen Sie es geben, müssen Sie wie folgt vor:

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

lstids wahrscheinlich ist ein list, collection und es ist ToString() ist keine richtigen Daten geben.

Versuchen Sie das mal:

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