dポイントプレゼントキャンペーン実施中!

VB2008からExcelのデータを取得しようとしています。
上から1行づつ読み込み処理をします。
各行でデータの入っている列数が変わります。

今作ったファイルでは OleDbDataReaderのFieldCountが77になりました。
これを
For cnt = 0 to rdr.FieldCount - 1
Debug.WriteLine(rdr.GetString(cnt))
next
とやると1行目のcnt=6で落ちてしまいます。
メッセージは
指定されたキャストは有効ではありません。
です。
excelのデータは1行目はE列まで入っています。

もっと早くExcelからデータ読み込む方法であれば
他の方法でもかまいません。
どうやったら列数の違うシート全体を取込めるでしょうか?

A 回答 (1件)

方法は色々ありますが、今回の方法で取得するのであれば、



If Not rdr.IsDBNull(cnt) Then
Debug.WriteLine(rdr.GetString(cnt))
End If

として、nullの場合は読み込まないようにすれば、
例外が出力されることはなくなるかと思います。
    • good
    • 0
この回答へのお礼

できました。
ありがとうございます。

お礼日時:2009/10/29 11:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!