Ich verwende OLEDB-Verbindung, um Daten aus Excel-Dateien zu lesen. Beim Verwenden des IN-Operators in der Select-Abfrage treten Probleme auf. Unten ist meine Frage,IN Operator in OLEDB
string EmployeeIds = "'1231','1232','1233'";
SELECT [Employee Number],[Employee Name],[First In Time],[Last Out Time],[Total Work Hours]
FROM [Sheet0$A2:J]
WHERE [Employee Number] IN (?);
comm.Parameters.AddWithValue("?",EmployeeIds);
ich leer Ergebnisse bin immer, aber wenn ich nur Einzelwert geben dann ich immer Ergebnis bin. Bitte helfen Sie.
Etwas, es besser zu machen: eine Liste Verwenden Sie die Parameter Platzhalter zu speichern (und sie sollten sein, weil wir nicht wissen, die zugrunde liegenden db „?“) und erstellen Sie die letzte Abfrage nur mit string.Join anstelle von vielen String-Operationen (mit einer Menge von Parametern könnte es ein Leistungsproblem sein), auch Parameter sind vom Typ OleDb.Int32, aber das op verwendet Strings. Dies könnte je nach Motor funktionieren oder nicht. Besser das Richtige tun und sie konvertieren – Steve
@Steve du meinst wie [deine Antwort hier] (https://Stackoverflow.com/a/46471904/3094533)? Ich dachte tatsächlich darüber nach, entschied aber, dass es eine Art Plagiat sein würde, und obwohl es die aufrichtigste Form der Schmeichelei ist, denke ich, dass ich besser Kredit belasse, wo der Kredit fällig ist :-) –
Ah Das war, wo es war. Vielleicht sollten wir das als Duplikat dann schließen, aber es ist nicht möglich. Ziemlich sicher gibt es andere Duplikate um – Steve