私はOLEDB接続を使用してExcelファイルからデータを読み取ります。 SelectクエリでIN演算子を使用しているときに問題に直面しています。以下 は私のクエリ、OLEDBのIN演算子
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);
である私は、空の結果を取得していますが、私は単一の値のみを与えるならば、私は結果を取得しています。助けてください。
何か:パラメータのプレースホルダを格納するためのリストを使用します(と私たちは基礎となるDBを知らないので、彼らがあるべき「?」 )多くの文字列操作の代わりにstring.Joinを使用して最終クエリを作成します(多くのパラメータを使用するとパフォーマンス上の問題になる可能性があります)。また、パラメータはOleDb.Int32型ですが、演算子は文字列を使用します。これはエンジンに依存しても動作しなくてもかまいません。適切なことをして変換してください。 – Steve
@スティーブ[あなたの答えはこちら](https://stackoverflow.com/a/46471904/3094533)のような意味ですか?私は実際にそれについて考えましたが、それは盗作のようなものになると判断しました。それは誠実な形の賛美ですが、私はクレジットを支払うべきであると信じています:-) –
あの場所です。たぶん、重複してこれを閉じるべきですが、不可能です。他の人が重複していることを確かめてください – Steve