在.net中将csv文本值添加到dataTable时出现分析错误

在.net中将csv文本值添加到dataTable时出现分析错误,.net,vb.net,.net,Vb.net,我正在尝试将CSV文件中的记录添加到vb.net中的dataTable中,如下所示: dim myObjAdapter as new myDataSourceAdapters.myTableAdapter dim myObjTable as new myDataSource.myTable myObjTable = myObjAdapter.Getdata 'The problem is not in csvReader, I've printed the data in Debug and

我正在尝试将CSV文件中的记录添加到vb.net中的dataTable中,如下所示:

dim myObjAdapter as new myDataSourceAdapters.myTableAdapter
dim myObjTable as new myDataSource.myTable

myObjTable = myObjAdapter.Getdata

'The problem is not in csvReader, I've printed the data in Debug and the numbers is ok.
Dim csvR As New LumenWorks.Framework.IO.Csv.CsvReader(New StreamReader("c:\myFile.csv"), True)

do While csvR.NextRecord 'method nextrecord returns true if a record exists and moves forward

   'Class csvreader returns the value of the specified column
   myObjTable.AddMyTableRow(csvr("ID"),csvr("rate"))

loop

myObjAdapter.update(myObjTable)
这将为包含“1,0.5414”的csv文件生成表中的记录[1 | 5414],而不是[1 | 0.5414]

当我读表时,所有的十进制值都转换成整数。我认为这是由于我的区域设置造成的,其中十进制分隔符为(“,”),数字分组符号为(“.”)。然后,表中的addRow方法类似于将分号解析为区域配置中的设置。我可以使用以下方法绕过此问题:

myObjTable.AddMyTableRow(csvr("ID"),cdbl(csvr("rate").Replace(".",",")))
但我不认为这是“最聪明”的解决方案

PS:在CSV文件中,十进制数字是“.”,如果我直接将一条记录添加到表中,使用“.”作为十进制分隔符,则数字的格式正确

有一种设置需要更改,或者在添加此记录时启用/禁用选项,以便正确添加?

解析数字时使用

比如说

Dim s as new string = "1,0.3434"
Dim InvC As CultureInfo = CultureInfo.InvariantCulture
dim invariantString as string = s.ToString(InvC)