无法强制转换类型为'System.Data.DataRow'键入'System.Data.Dat
本文关键字:Data System DataRow 键入 Dat 转换 类型 | 更新日期: 2023-09-27 17:50:38
我收到了错误:
无法强制转换"System.Data"类型的对象。"data . datarowview"。
private void addToOrder(DataRowView drv)
{
DataRow dr = orderDataTable.NewRow();
dr["ProductID"] = drv["ProductID"];
dr["ProductBarcode"] = drv["ProductBarcode"];
dr["ProductName"] = drv["ProductName"];
dr["SalePrice"] = drv["SalePrice"];
dr["SoldQuantity"] = 1;
dr["NotEditable"] = false;
try
{
orderDataTable.Rows.Add(dr);
}
catch (ConstraintException)
{
DataRow dr1 = orderDataTable.Rows.Find(drv["ProductID"]);
dr1["SoldQuantity"] = Convert.ToInt32(dr1["SoldQuantity"]) + 1;
}
}
private void btnAddToOrder_Click(object sender, RoutedEventArgs e)
{
// add to order
if(txtBarcodeAuto.Text.Length >0)
{
//get data from sql server database for product details(productID, ProductName,ProductPrice)
DataTable dscrntProd = prods.SelCrntProd4Sale(crntProdID);
foreach (DataRowView dr in dscrntProd.Rows)
{
addToOrder(dr);
}
}
}
由于数据类型不匹配,下面一行出现错误。
foreach (DataRowView dr in dscrntProd.Rows) // as dscrntProd is DataTable
应该是
foreach (DataRow dr in dscrntProd.Rows)
{
addToOrder(GetOrderDataRowViewFromDataFow(dr));
}
你需要写GetOrderDataRowViewFromDataRow
天哪,那就别那么做了。试试这个:
private void addToOrder(DataRow drv)
{
....
}
foreach (DataRow dr in dscrntProd.Rows)
{
addToOrder(dr);
}
数据owis不能转换为数据owview
foreach(DataRow dr in dscrntProd.Rows)
{
addToOrder(dr);
}
private void addToOrder(DataRow dr) // change the function argument to DataRow.
{// Do something.
}
谢谢。