我有以下代码从CSV文件导入数据:
Dim datatabel As New DataTable()
datatabel.Columns.Add(New DataColumn("lidno", GetType(String)))
datatabel.Columns.Add(New DataColumn("lidnaam", GetType(String)))
datatabel.Columns.Add(New DataColumn("blokno", GetType(String)))
datatabel.Columns.Add(New DataColumn("plaasno", GetType(String)))
datatabel.Columns.Add(New DataColumn("kult", GetType(String)))
datatabel.Columns.Add(New DataColumn("wynklas", GetType(String)))
datatabel.Columns.Add(New DataColumn("jaar", GetType(Integer)))
Dim parser As New FileIO.TextFieldParser("C:\Users\Administrator\Desktop\Wingerdbou\Plaasbeplanning\2016\VBProgram\Data\Skaalkaarte\Skaalkaarte12tot16TRASH.csv")
parser.Delimiters = New String() {","}
parser.HasFieldsEnclosedInQuotes = False
parser.TrimWhiteSpace = True
parser.ReadLine()
Do Until parser.EndOfData = True
datatabel.Rows.Add(parser.ReadFields())
Loop
在最后一行(datatabel.Rows.Add(parser.ReadFields())我收到以下错误消息:输入字符串格式不正确。不能在jaar中存储< #VALUE!>列。预期类型为Int32。
奇怪的是,我为其他CSV文件使用了相同的代码,但它确实有效。我认为问题在于第二个CSV文件,但是我看不到问题(我使用Excel将它们保存为CSV(MSDOS)并将Excel中的列格式化为“常规”。
部分有问题的CSV看起来像这样(来自记事本):
lidno,lidnaam,blokno,plaasno,KULT,wynklas,JAAR
1023-AUR,A.G.F。 AURET,1- BLY,8426,COL,BULK,2012
1023-AUR,A.G.F。 AURET,1- BLY,8426,COL,BULK,2012
1023-AUR,A.G.F。 AURET,1- BLY,8426,COL,BULK,2012
1023-AUR,A.G.F。 AURET,1- BLY,8426,COL,BULK,2012
任何帮助将不胜感激。 此致