“Field”不是“System.Data.DataRow”的成员
本文关键字:成员 DataRow System Field 不是 Data | 更新日期: 2023-09-27 18:35:53
我正在使用VS2005进行 vb.net。我在下面的语句中收到编译错误。如何解决这个问题?
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
添加对System.Data.DataSetExtensions.dll
的引用,然后您的代码就可以工作了。 Field
是一个扩展方法,您需要添加引用,否则它将不起作用。
VS 2005 与 .net 2.0 ?
然后,不能添加对此 DLL 的引用。 需要面向 .NET 3.5 或更高版本才能使用这些扩展方法。
更新 2:对另一个更直接/更明确的答案投赞成票:-)
更新:虽然以下内容仍然适用,但 DataRowExtensions 类提供了一个DataRow.Field
;请确保它被引用。
因为没有在DataRow
类型上定义名为Field
的成员...也许特殊Item
属性是有意的?
请注意,在示例中,它用作索引器 ( row("Name")
)。很整洁吧?
(此外,应该对Replace
的结果执行一些操作,因为字符串在 .NET 中是不可变的。
快乐编码。
如果未显式强制转换 DataRow,也会发生此错误。(原始海报正确地执行此操作。
使用这个:
For Each rw As DataRow In data.Rows
不是这个:
For Each rw In data.Rows