ADO.NETでのCSVファイルインポート
- 題名: ADO.NETでのCSVファイルインポート
- 著者: やす
- 日時: 2009/12/10 19:21:36
- ID: 26012
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: ADO.NETでのCSVファイルインポート
- 著者: オショウ
- 日時: 2009/12/10 21:20:28
- ID: 26013
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: ADO.NETでのCSVファイルインポート
- 著者: 魔界の仮面弁士
- 日時: 2009/12/11 10:03:39
- ID: 26018
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: ADO.NETでのCSVファイルインポート
- 著者: やす
- 日時: 2009/12/11 11:23:29
- ID: 26025
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: ADO.NETでのCSVファイルインポート
- 著者: やす
- 日時: 2009/12/11 11:32:39
- ID: 26026
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
はじめまして。
ADFO.NETでcsvファイルをインポートしてdatatableに格納した後、吐き出す際に以下の現象で困っています。
パスとCSVファイル名を引数に以下の関数を実行。
取得データデータセット内のテーブルの1列目で以下の現象が発生します。
[CSV]
1234,1234,1234
1234,1234,1234
1234,1234,1234
を吸い込むと
[Datatable]
1234,1234,1234
1234,1234,1234
1234,1234,1234
これは正常。
[CSV]
1234,1234,1234
1234,1234,1234
a234,1234,1234
を吸い込むと
[Datatable]
1234,1234,1234
1234,1234,1234
DBNULL,1234,1234
英数字が混在した際なぜかDBNULLでブランクが返ってきます。
ちなみに
[CSV]
1234,1234,1234
a234,1234,1234
a234,1234,1234
を吸い込むと
[Datatable]
1234,1234,1234
a234,1234,1234
a234,1234,1234
で1列目に英数字が混在した際に、混在が多数(2:1)派になるとちゃんと取得します。分かりやすく3件で示しましたが15件や30件で試しても多数派を締めた時点で期待する動きになります。
datatypeが怪しいとおもうのですが、コネクションを作成して一気に吸い上げるのでどこで設定していいのか分かりません。
現状DBNULLの場所はDBNULLタイプ。
その他はSTRING型となっています。
Public Shared Function ImportCsv(ByVal xlsPath As String, ByVal fileName As String) As DataSet
'コネクション情報作成
Dim m_sConn1 As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & xlsPath & ";" & _
"Extended Properties=""Text;HDR=NO;FMT=Delimited"""
Dim objConn As New OleDbConnection(m_sConn1)
objConn.Open()
Dim objCmdSelect As New OleDbCommand("SELECT * FROM " & fileName, objConn)
Dim objAdapter1 As New OleDbDataAdapter
objAdapter1.SelectCommand = objCmdSelect
Dim objDataset1 As New DataSet
objAdapter1.Fill(objDataset1, "XlsDT")
Return objDataset1
End Function