2016-12-13 8 views
-1

私は、いくつかの広告申込情報を検索するために必要なcsvファイルを用意しています。チュートリアルhereに従って、CSVファイルをDataTableに読み込みました。VB.Net CSVファイル

SELECT * FROM <NameOfCsvFile> 

これは素晴らしいですが、全体のCSVファイルをDataTableとして返します。私は、ファイルの一部だけが既知のエラーをチェックするようにしたい。だから私はこのようなことに私のクエリを変更:

SELECT * FROM <NameOfCsvFile> WHERE Column1 IN (Int1,Int2,Int3,Int4,Int5) 

私は、デバッガでのDataTableの出力をチェックすると、それは右の行数(5であることを)持っていたが、行のリストがNOTHINGに等しかったです。

CSVファイル全体を手作業でループする代わりに、MSのクエリインターフェイスを使用して、何百というものを探し出す5つのレコードを返すことができますか?

+0

、 '' '列1 IN(「Int1に」、「INT2」をしてみてください...' '' – Anand

+0

は理由がない世界では良いですもちろん、あなたはすべての行をロードしてWHEREをフィルタとして適用することができます。データに応じて、OleDBがいくつかの列またはすべての列のテキストに変換する可能性があります。列名ではなく、そのリスト内の特定の列をロードしようとする試みがありません – Plutonix

+0

@Anand文字列に変換しようとしましたが、データテーブル用に何も戻さないため、文字列に変換されているとは思われません – Talguy

答えて

0

私はそれを理解しました。クエリは完全に機能しましたが、デバッガではまだデコードされていない行が返されるのを確認できません。 Dim rows() as DataRows = dt.Select("")を呼び出すと、私はCSVファイルクエリの実際の結果を見ることができました。

すべてが今

は輸入が文字列にあなたの整数値を変換している場合があります