2010-09-08 68 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

相關問題