2010-09-08 20 views
6

CSV'den bir içe aktarma programı oluşturmaya çalışıyorum.Aynı anahtarla bir öğe zaten eklendi - csvreader.fieldcount

Kodum

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

hata mesajı "zaten eklenmiş aynı anahtara sahip bir öğe." ikinci satırda. "HasReaders" ı "False" olarak değiştirdiysem, böyle bir hata yoktur. Ancak, Başlıkları alamıyorum.

Birisi bana yardım edebilir mi lütfen?

FYI: Visual Studio 2010 sürümünü kullanıyorum.

Selamlar, CSV dosyası başlık satırında, yinelenen sütun adlarını veya birden boş hücrelerinin olabileceğini Richard

cevap

6

Kontrol? Bu durumda, csv nesnesinde dolaşmayı deneyin ve FieldCount özelliğini çağırmadan önce üstbilgileri kodda yeniden adlandırmayı deneyin.

+1

Yardımlarınız için çok teşekkürler. Gittiğimde gecikmiş cevabım için özür dilerim. Şimdi sorunu çözebilirim. CSV dosyasındaki "Çoklu Boş Hücreler" nedeniyle. Saygılarımızla, Richard – Richard

+1

"Birden çok boş hücre" sorunu, başlık satırı tamamen eksik olduğunda da oluşur. Okuyucu daha sonra ilk veri satırınızı sütun adları olarak yorumlamaya çalışır. Benim durumumda, hataya neden olan "0" veri değerine sahip birkaç sütun vardı. –

1

Benim tahminim, CsvReader sınıfının bir diziye ilk satır ekleme dizelerinden geçmesi ve üstbilgi satırının aynı değere sahip iki hücreye sahip olması (bu nedenle iki aynı adlı alan). Verilerinize bir göz atın ve durumun böyle olup olmadığını görün. Alternatif olarak, CsvReader için kaynak koduna erişiminiz varsa, bu durumu, ikinci alanı biraz farklı bir şekilde (örneğin, adının sonuna bir "1" ekleyerek) adlandırarak ele alabilirdiniz.

+0

Kaynak kodu burada bulabilirsiniz - http://www.codeproject.com/KB/database/CsvReader/CsvReader_src.zip – Justin

İlgili konular