无法将“System.Data.DataRowView”类型的对象强制转换为“System.Data.DataRow”类型

时间:2010-03-17 08:10:59

标签: c#

我在foreach循环中有以下异常

  

无法将类型为“System.Data.DataRowView”的对象强制转换为类型   '的System.Data.DataRow'

如何解决问题?

5 个答案:

答案 0 :(得分:17)

DataRowView不是DataRow,并且无法转换为DataRow。但是,您可以使用DataRow属性访问相应的Row

foreach(DataRowView drv in dataView)
{
    DataRow row = drv.Row;
    ...
}

答案 1 :(得分:1)

你可以像:

datarow= DirectCast (System.Data.DataRowView, System.Data.DataRow).row 

答案 2 :(得分:0)

看起来您使用DataRow作为foreach循环变量类型,而实际上您使用DataRowView类型迭代可枚举。检查DataRowView是否具有您需要的功能,如果是,您可以将其替换为另一个。或者,您可以修改代码,使用DataRow代替DataRowView的代码返回可枚举代码。

答案 3 :(得分:0)

而不是foreach(DataRow dr in myDataView),请尝试使用 foreach(DataRowView drv in myDataView)

答案 4 :(得分:0)

我相信您会尝试这样做

DataRowView row = (DataRowView)e.Item.DataItem;

这就是应该怎么做

System.Data.Common.DbDataRecord objData = (System.Data.Common.DbDataRecord)e.Item.DataItem;