Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法强制转换类型为';System.Data.DataRow';输入';System.Data.DataRowView_C#_C# 4.0 - Fatal编程技术网

C# 无法强制转换类型为';System.Data.DataRow';输入';System.Data.DataRowView

C# 无法强制转换类型为';System.Data.DataRow';输入';System.Data.DataRowView,c#,c#-4.0,C#,C# 4.0,我收到了错误消息: 无法将“System.Data.DataRow”类型的对象强制转换为“System.Data.DataRowView”类型 由于数据类型不匹配,以下行出现错误 foreach (DataRowView dr in dscrntProd.Rows) // as dscrntProd is DataTable 应该是 foreach (DataRow dr in dscrntProd.Rows) { addToOrder(GetOrderDataRowViewFromDa

我收到了错误消息:

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


由于数据类型不匹配,以下行出现错误

foreach (DataRowView dr in dscrntProd.Rows) // as dscrntProd  is DataTable
应该是

foreach (DataRow dr in dscrntProd.Rows)
{
  addToOrder(GetOrderDataRowViewFromDataFow(dr));
}  

您需要从DataRow写入
GetOrderDataRowViewFromDataRow

由于数据类型不匹配,以下行出现错误

foreach (DataRowView dr in dscrntProd.Rows) // as dscrntProd  is DataTable
应该是

foreach (DataRow dr in dscrntProd.Rows)
{
  addToOrder(GetOrderDataRowViewFromDataFow(dr));
}  

您需要从DataRow编写
GetOrderDataRowViewFromDataRow

好吧,天哪,那就别这么做了。请尝试以下方法:

private void addToOrder(DataRow drv)
{
    ....
}

foreach (DataRow dr in dscrntProd.Rows)
{
    addToOrder(dr);
}

哦,天哪,那就别那么做。请尝试以下方法:

private void addToOrder(DataRow drv)
{
    ....
}

foreach (DataRow dr in dscrntProd.Rows)
{
    addToOrder(dr);
}

DataRowView无法转换为DataRowView

foreach(DataRow dr in dscrntProd.Rows)
{
    addToOrder(dr);
}

private void addToOrder(DataRow dr) // change the function argument to DataRow.
    {// Do something.
}

谢谢。

DataRowView无法转换为DataRowView

foreach(DataRow dr in dscrntProd.Rows)
{
    addToOrder(dr);
}

private void addToOrder(DataRow dr) // change the function argument to DataRow.
    {// Do something.
}

谢谢。

除了你的结论之外,他不需要从DataRow编写
GetOrderDataRowViewFromDataRow
,而是将
addToOrder
的签名更改为@Reacher提到的获取
DataRows
。除了你的结论之外,他不需要从DataRow编写
GetOrderDataRowViewFromDataRow
,而是将
addToOrder
的签名更改为@Reacher提到的
DataRows
。-1
DataTable。Rows
会返回
DataRowViews
的集合。但是,这与@Reachers现在的答案相同,所以我看不出有什么附加值。你可能想删除它。实际上我想写这个。但一旦我发布,Reachers的发布就会在我之前完成。起初我发现这个问题没有答案。不管怎么说,希望得到帮助。谢谢。当我这样做时,我得到了一个错误:“对象引用未设置为对象的实例。”-1
DataTable。Rows
确实返回了
DataRows
的集合,而不是
DataRowViews
。但是,这与@Reachers answer现在的答案相同,所以我看不到附加值。你可能想删除它。实际上我想写这个。但一旦我发布,Reachers的发布就会在我之前完成。起初我发现这个问题没有答案。不管怎么说,希望得到帮助。谢谢。当我这样做的时候,我得到了一个错误:“对象引用没有设置为对象的实例。”病人:医生,我这样做的时候很痛。医生:那就别那么做。(编辑我的评论)病人:医生,我这样做很痛。医生:那就别那么做。(编辑我的评论)