代码:
Dim query As IEnumerable(Of DataRow) = From row In datatable.AsEnumerable() _
Select New With {
.messageId = row.Field(Of Integer)("Message_Id"), _
.severity = row.Field(Of String)("Severity")}
Dim dt As DataTable = query.CopyToDataTable
我从DataTable
获取了一些列并复制到新的DataTable
。但它给了我以下错误:
System.Data.EnumerableRowcollection(匿名类型)不能 转换了System.collections.Generic.IEnumerable(of 的System.Data.DataRow)。
我该如何处理?
答案 0 :(得分:0)
您在此处创建新类型:
Select New With {
.messageId = row.Field(Of Integer)("Message_Id"),
.severity = row.Field(Of String)("Severity")
}
尝试将这种新类型转换为DataRow
。这就是你收到错误的原因。
您可以使用以下代码过滤数据:
Dim query = From row As DataRow In dtTable.Rows
Where row("colunm_name").ToString = "condition"
Select row
这将为您提供IEnumerable(Of DataRow)
。