2012-05-30 25 views
6

vb.net için VS2005 kullanıyorum. Aşağıdaki ifadede derleme hatası alıyorum. Bunu nasıl düzeltebilirim?'Field' bir 'System.Data.DataRow' üyesi değil

For Each rw As DataRow In data.Rows 
     For Each dc As DataColumn In stringColumns 
      rw.Field(Of String)(dc).Replace("_x00D_", "") //Error showing here 
     Next 
    Next 

cevap

8

Güncelleme 2: Aşağıdaki hala geçerli olmakla birlikte tarafından sağlanan bir DataRow.Field orada geçerli: Yukarı oyu diğer daha doğrudan/net bir cevap Güncelleme


:-) DataRowExtensions sınıfı; referans alındığından emin olun. Hiçbir üye DataRow tipi üzerinde tanımlanan Field denilen olmadığından


... belki özel Item mülkiyet yerine gerekiyordu?

Dizin oluşturucu olarak kullanıldığı örnekle not alın (row("Name")). Temiz, ha?

Mutlu kodlama (Ayrıca, bir şey sonucu NET'te iletmenin Replace dizeleri olarak bir. Ile yapılmalıdır).

+1

1+ ilk yazı OP .net 2.0 kullanarak beri, doğru – Damith

14

System.Data.DataSetExtensions.dll için başvuru ekleyin ve kodunuz çalışacaktır. Field referans eklemek için ihtiyacınız olan bir Uzatma yöntemidir, aksi takdirde işe yaramaz.

VS 2005 with .net 2.0?

daha sonra bu dll'ye başvuru ekleyemezsiniz. Bu uzantı yöntemlerini kullanmak için 3.5 veya üstü hedeflemeniz gerekir.

2

Bu hata, DataRow'u açık bir şekilde yayınlamadığınız takdirde de ortaya çıkar. (orijinal afiş bu doğru yapar.)

bunu kullanın:

For Each rw As DataRow In data.Rows 

değil bu:

For Each rw In data.Rows 
İlgili konular