- 締切済み
VB.netでJet.OLEDBを使いCSVを読み
VB.netでOleDbConnectionを使ってCSVを読み込むと便利ですが、属性判定を勝手にされたくありません。 どうすればコントロールできますか? 個別に属性を決めるか、もしくは全部文字列として受け取りたいです。 何もしなければ、項目の属性が自動で決まりますが、その属性判断が甘く、属性に合わない値が消えます。 例えば、 日付項目っぽい値が入っている項目にたまに文字列がるとすると、 その項目が日付項目になって、日付項目に合わないデータは空白になってしまいます。 CSVの読み込みは一旦すべて文字列にして受け取り、その後の事はアプリでコントロールしたいです。 どうすればできますか? Dim OleDbConnection1 As New OleDb.OleDbConnection Dim OleDbCommand1 As New OleDb.OleDbCommand Dim OleDbDataAdapter1 As New OleDb.OleDbDataAdapter Dim FileInfo1 As New FileInfo(CSVファイルの名前をフルパスで) OleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" & FileInfo1.DirectoryName & "\;" _ & "Extended Properties=" & ControlChars.Quote & "Text;HDR=No;FMT=Delimited" & ControlChars.Quote OleDbConnection1.Open() OleDbCommand1.CommandText = "SELECT * FROM [" & FileInfo1.Name & "]" OleDbCommand1.Connection = OleDbConnection1 OleDbDataAdapter1.SelectCommand = OleDbCommand1 OleDbDataAdapter1.Fill(DataTable1) OleDbDataAdapter1.Dispose() OleDbCommand1.Dispose() OleDbConnection1.Dispose()
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- ushi2015
- ベストアンサー率51% (241/468)
こんにちは http://qiita.com/OneK/items/c3077aea595635f40ee5 とかを見るとCSVも出来そうな気がしたのですがダメですか。 http://www.ken3.org/cgi-bin/test/test101-2.asp のような方法は出来ないのでしょうか? 試してみてはどうですか?
- ushi2015
- ベストアンサー率51% (241/468)
こんにちは OleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" & FileInfo1.DirectoryName & "\;" _ & "Extended Properties=" & ControlChars.Quote & "Text;HDR=No;FMT=Delimited" & ControlChars.Quote & ";IMEX=1" \が余計だったかも? IMEX=1でググって参考になるサイトを見てはどうでしょうか?
お礼
>\が余計だったかも? ダメです。 インストール可能なISAMドライバーが見つかりませんでした。 \がある無しで、 \があるならIMEXはProvider、Data Source、Extended Propertiesと同じレベルの4つめのオプションという扱い、 \が無いならIMEXはExtended Propertiesのオプションという扱いですよね? どちらですか? それともテキトーですか? IMEX=1は、エクセルを読み込むときのオプションのようで、エクセル以外では関係なさそうですが。
- ushi2015
- ベストアンサー率51% (241/468)
こんにちは OleDbConnection1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=" & FileInfo1.DirectoryName & "\;" _ & "Extended Properties=" & ControlChars.Quote & "Text;HDR=No;FMT=Delimited" & ControlChars.Quote & "\;IMEX=1;" 環境無いので試してないです。
お礼
ダメでした。 初期化文字列の形式が使用に適合しません。
お礼
> http://qiita.com/OneK/items/c3077aea595635f40ee5 > とかを見るとCSVも出来そうな気がしたのですがダメですか。 そのURL先で書いていることは、前半はCSVの取り込みの方法、後半はエクセルの取り込みの方法です。 前半部分のCSVの取り込みの方法で、属性操作の事には触れていません。 それにVBの質問にC#で返されても検証できません。 ご存じでないならもう結構です。