我有一个包含价格和超过1000行 一个专栏中,我想减少适用于所有那些价格例如“-20%”快速地遍历datagridview的行
product price
product1 200
product2 300
product3 400
一个DataGridView
public class product
{
public int ID {get;set;}
public double Price {get;set;}
public string Name {get;set;}
}
public List<product> GetListProduct()
{
B_Entities dbCtx = new B_Entities();
return dbCtx.B_PRODUCTS.Select(p => new Product{ ID= p.ID, Name= p.Name, Price= p.Price }).ToList();
}
dgvListeProd.DataSource = GetListProduct();
Parallel.For(0, dgvListeProd.Rows.Count, index=>
{
object priceValue = dgvListeProd.Rows[index].Cells[2].Value;
if (priceValue != null)
{
decimal price = Convert.ToDecimal(priceValue);
decimal countedPrice = (price * pourcentage)/100;
countedPrice = price - countedPrice;
dgvListeProd.Rows[index].Cells[2].Value =(double) countedPrice;
}
});
这会生成一个聚合异常。 如何以快速方式执行此任务
这不是一个循环,但更新的问题。你在使用数据绑定模式吗?如果是,那么数据源的类型是什么? –
循环是问题,因为当我试图与普通的循环我的工作,但需要太多的时间,然后我想并行化的过程,但没有找到办法做到这一点 – MediSoft
不,不是。如果你只是循环不带'dgvListeProd.Rows [index] .Cells [2] .Value =(double)countedPrice'行,你应该没有任何问题 - 现在的CPU没有1000条记录。请回答有关数据绑定或未绑定模式的问题。 –