我正在为 vb.net 使用 VS2005。我在下面的语句中收到编译错误。如何解决这个问题?
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
提供了一个;确保它被引用。
因为没有Field
在类型上定义的成员DataRow
......也许是特殊Item
属性的意思?
请注意在示例中它用作索引器 ( row("Name")
)。整齐吧?
(此外,应该对as 字符串在 .NET 中不可变的结果进行处理。)Replace
快乐编码。
如果您不显式转换 DataRow,也会发生此错误。(原始海报正确地做到了这一点。)
用这个:
For Each rw As DataRow In data.Rows
不是这个:
For Each rw In data.Rows