我在foreach循环中有以下异常
无法将类型为“System.Data.DataRowView”的对象强制转换为类型 '的System.Data.DataRow'
如何解决问题?
答案 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;