C# 无法强制转换类型为';System.Data.DataRowView';输入';System.Data.DataRow';
我在foreach循环中有以下异常 无法将“System.Data.DataRowView”类型的对象强制转换为 “System.Data.DataRow”C# 无法强制转换类型为';System.Data.DataRowView';输入';System.Data.DataRow';,c#,C#,我在foreach循环中有以下异常 无法将“System.Data.DataRowView”类型的对象强制转换为 “System.Data.DataRow” 如何解决该问题?看起来您使用了DataRow作为foreach循环变量类型,而实际上您正在使用DataRowView类型迭代可枚举变量。检查DataRowView是否具有您所需的功能,如果有,您可以用一个替换另一个。或者,您可以修改代码以使用DataRow返回可枚举数据,而不是使用DataRowView返回可枚举数据,而不是使用foreac
如何解决该问题?看起来您使用了
DataRow
作为foreach循环变量类型,而实际上您正在使用DataRowView
类型迭代可枚举变量。检查DataRowView
是否具有您所需的功能,如果有,您可以用一个替换另一个。或者,您可以修改代码以使用DataRow
返回可枚举数据,而不是使用DataRowView
返回可枚举数据,而不是使用foreach(myDataView中的DataRow dr)
,请尝试foreach(myDataView中的DataRowView drv)
ADataRowView
不是DataRow
,不能转换为DataRow
。但是,您可以使用行
属性访问相应的数据行
:
foreach(DataRowView drv in dataView)
{
DataRow row = drv.Row;
...
}
你可以像这样施展:
datarow= DirectCast (System.Data.DataRowView, System.Data.DataRow).row
我相信你会尝试这样做
DataRowView行=(DataRowView)e.Item.DataItem代码>
应该这样做
System.Data.Common.DbDataRecord objData=(System.Data.Common.DbDataRecord)e.Item.DataItem代码>我很确定我能猜到这一条,但为了以防万一,请先发布您的代码。(foreach循环)我删除了WPF标记,因为这个问题与wpforeach(DataRow dtrCurrentRow in(((System.Data.DataView)lstData.ItemsSource)).Table.Rows)无关。{}我使用了上面的代码来获得结果,lstData是WPF的listbox控件。感谢您的帮助。您也可以使用LINQ:foreach(dataView.Select(drv=>drv.row)中的DataRow行)在一行中完成此操作。
11年后,仍然很有用。