CSVファイルを相対パスでOLEDB接続し、DataTableに格納する際のエラー
- 題名: CSVファイルを相対パスでOLEDB接続し、DataTableに格納する際のエラー
- 著者: すもも
- 日時: 2007/06/16 0:56:57
- ID: 19853
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: CSVファイルを相対パスでOLEDB接続し、DataTableに格納する際のエラー
- 著者: すもも
- 日時: 2007/06/16 11:08:47
- ID: 19855
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: CSVファイルを相対パスでOLEDB接続し、DataTableに格納する際のエラー
- 著者: 管理人
- URL: http://dobon.net/
- 日時: 2007/06/18 2:18:11
- ID: 19864
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: CSVファイルを相対パスでOLEDB接続し、DataTableに格納する際のエラー
- 著者: るしぇ
- 日時: 2007/06/20 12:19:58
- ID: 19879
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: CSVファイルを相対パスでOLEDB接続し、DataTableに格納する際のエラー
- 著者: すもも
- 日時: 2007/06/23 2:26:31
- ID: 19902
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: CSVファイルを相対パスでOLEDB接続し、DataTableに格納する際のエラー
- 著者: るしぇ
- 日時: 2007/06/25 11:06:02
- ID: 19916
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: CSVファイルを相対パスでOLEDB接続し、DataTableに格納する際のエラー
- 著者: すもも
- 日時: 2007/07/01 0:38:15
- ID: 19969
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: CSVファイルを相対パスでOLEDB接続し、DataTableに格納する際のエラー
- 著者: るしぇ
- 日時: 2007/07/02 11:42:02
- ID: 19986
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[7]: CSVファイルを相対パスでOLEDB接続し、DataTableに格納する際のエラー
- 著者: すもも
- 日時: 2007/07/03 10:00:23
- ID: 19995
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
【解決したい問題】
はじめまして。
CSVファイル(ヘッダーなし)をDataGridのデータソースに設定したいと思い、
GooGleで検索した所、こちらのサイトを拝見しました。
http://dobon.net/vb/dotnet/file/readcsvfile.html
ご提示いただいているコードをそのまま使用させて頂いた時には
思い通りにDataGirdへ表示することができたのですが、
フォルダとファイルの名前をダイアログで取得したもの(相対パス)
を変数に代入し、実行したところ、da.Fill(dt) でエラーになって
しまいました。
---「エラー内容」---------------------------------
'System.Data.OleDb.OleDbException' のハンドルされて
いない例外が system.data.dll で発生しました。
--------------------------------------------------
---「参考サイトを※印のように修正しました」-------
'[VB.NET]
Dim csvAllFileName As String = Me.lblImpName.Text '※
'↑"C:\test.csv" が入っています
'CSVファイルのあるフォルダ
'Dim csvDir As String = "C:\"
Dim csvDir = System.IO.Path.GetDirectoryName(csvAllFileName) '※
'↑"C:\"が入っていました
'CSVファイルの名前
'Dim csvFileName As String = "test.csv"
Dim csvFileName As String = System.IO.Path.GetFileName(csvAllFileName) '※
'↑"test.csv"が入っていました
'接続文字列
Dim conString As String = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
+ csvDir + ";Extended Properties=""text;HDR=No;FMT=Delimited"""
Dim con As New System.Data.OleDb.OleDbConnection(conString)
Dim commText As String = "SELECT * FROM [" + csvFileName + "]"
Dim da As New System.Data.OleDb.OleDbDataAdapter(commText, con)
'DataTableに格納する
Dim dt As New DataTable
da.Fill(dt) '←ここでエラーになります
Me.dgrTest.DataSource = dt '※
--------------------------------------------------------
---「エラーを中断させた時の変数の中身」-----------------
csvAllFileName → "C:\test.csv"
csvDir → "C:\"
csvFileName → "test.csv"
conString → "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=
C:\;Extended Properties="text;HDR=No;FMT=Delimited"
commText → "SELECT * FROM [test.csv]"
--------------------------------------------------------
以上です。
ご提示頂いているものをそのまま使用させて頂くと正しく表示できるのに、
相対パスにするとエラーになってしまい、原因がわからず困っています。
どうぞ、よろしくお願いします。