2010-09-08 116 views
6

我试图从CSV创建导入程序。具有相同密钥的项目已添加 - csvreader.fieldcount

我的代码是

csv = New CsvReader(New StreamReader("CSVFileLocation"), True) 
Dim fieldCount As Integer = csv.FieldCount 

错误消息“使用相同的密钥已经被添加的项目。”在第二行。 如果我将“HasReaders”更改为“False”,则不会出现此类错误。但是,我无法获取标题。

请问有人能帮我解决这个问题吗?

仅供参考:我正在使用Visual Studio 2010版本。

问候, 理查德

回答

6

检查您的CSV文件可能有重复的列名,或多个空单元格,标题行?

如果是这种情况,请尝试循环访问csv对象,并在调用属性FieldCount之前尝试重命名代码中的标题。

+1

非常感谢您的帮助。对不起,因为我正在休假,所以我迟到了。现在,我可以解决这个问题。这是因为CSV文件中的“多个空单元”。此致Richard – Richard 2010-09-13 03:28:23

+1

当标题行完全缺失时,也会出现“多个空单元”问题。读者然后试图将您的第一行数据解释为列名。在我的情况下,我有几列数据值为“0”,这是导致错误。 – 2014-05-05 15:47:50

1

我的猜测是,CsvReader类正在通过向字典中添加字符串的第一行,并且标题行具有两个具有相同值的单元格(因此两个名称相同的字段)。看看你的数据,看看是否是这种情况。或者,如果您有权访问CsvReader的源代码,您可以通过命名第二个字段略有不同(例如,在其名称末尾添加“1”)来处理这种情况。

+0

源代码 - http://www.codeproject.com/KB/database/CsvReader/CsvReader_src.zip – Justin 2012-08-22 18:56:09