質問者
TextFieldParserを使用したCSVインポートについて

質問
-
windowsXP
VB2005
お世話になっております。
現在下記コードにてCSVインポートをおこなっているのですが、最終的に最終行近くのcsvRecordsに格納したフィールドを既存のデータテーブルに入れたいと思っております。ご覧のとおりcsvRecordsにフィールドを格納するところまでは問題ありません。
ここからデータテーブルに出力させる方法をご教授頂けないでしょうか?
Sub インポート_CSV()
Dim csvPath As String
Dim fbd As New FolderBrowserDialog
fbd.Description = "フォルダを指定してください。"
fbd.RootFolder = Environment.SpecialFolder.Desktop
fbd.SelectedPath = "C:\"
fbd.ShowNewFolderButton = TrueIf fbd.ShowDialog(Me) = Windows.Forms.DialogResult.OK Then
Console.WriteLine(fbd.SelectedPath)
End IfcsvPath = fbd.SelectedPath
Dim csvRecords As New System.Collections.ArrayList()
'CSVファイル名
Dim csvFileName As String = csvPath & "\WaterQualityMain.csv"Dim tfp As New FileIO.TextFieldParser(csvFileName, _
System.Text.Encoding.GetEncoding(932))
tfp.TextFieldType = FileIO.FieldType.Delimited tfp.Delimiters = New String() {","} tfp.HasFieldsEnclosedInQuotes = True
tfp.TrimWhiteSpace = TrueWhile Not tfp.EndOfData
'フィールドを読み込む
Dim fields As String() = tfp.ReadFields()
csvRecords.Add(fields)・・・・・・・・・・・・・・・・・・・・・・・・・・・・csvRecordsにフィールド全てを格納
End Whiletfp.Close()
End Sub
すべての返信
-
trapemiyaさん有り難うございます。いつもすみません^^
trapemiyaさんの言われるとおりです。無事インポートさせることができました。
が、、、ちょっと困ったことになりました。
通常通り(インポートではなくバインドさせたデータグリッドビューで普通にデータを編集する等)ですと、これでテーブルアダプタのUPDATEにて保存可能なのですが、今回インポートさせたデータを保存しようとすると、長さ0の文字列データは保存できない旨の警告が出て保存に至りませんでした。もちろんデータベース上では、この該当フィールドは空白OK(値の要求なし)です。
自分なりに考えたのですが、これってエクスポートしたデータ自体が空白(””)という認識で出力したがために、インポートする際空白文字列というような認識になってしまい起こることなのでしょうか?
やはり、エクスポートの方法を考えないといけないのでしょうか?