2012-05-30 38 views
6

我正在使用VS2005進行vb.net。在下面的語句中,我收到了編譯錯誤。如何解決這個問題?「字段」不是'System.Data.DataRow'的成員

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 

回答

8

更新2:贊成票其他更直接/明確的答案:-)


更新:而下面仍然適用,有所提供的DataRow.FieldDataRowExtensions類;確保它被引用。


因爲沒有成員叫過DataRow類型定義Field ...也許是特殊Item財產的意思呢?

請注意在它用作索引器的示例中(row("Name"))。整潔,嗯?

快樂編碼(另外,一些應該與結果Replace爲字符串在.NET不可改變的。做)。

+1

1+你的第一篇文章是正確的,因爲使用.NET 2.0 OP – Damith

14

添加對System.Data.DataSetExtensions.dll的引用,那麼您的代碼將起作用。 Field是您需要添加引用的擴展方法,否則它將不起作用。

VS 2005 with .net 2.0?

那麼你不能添加對此dll的引用。您需要使用.net 3.5或更高版本才能使用這些擴展方法。

2

如果您沒有顯式強制轉換DataRow,也會發生此錯誤。 (樓主這是否正確。)

使用此:

For Each rw As DataRow In data.Rows 

不是這個:

For Each rw In data.Rows