我有一个Datagridview,我从一个XML文件创建的数据集填充。这部分工作,我可以让数据集的全部内容显示在数据网格中。我有添加的功能来过滤基于日期和销售标志的datagridview。这也可以正常工作,因为在循环访问日期时datagridview会更新。不过,我需要对“过滤的”datagridview进行一些计算。这些计算需要将各种货币转换为英镑。因此,在对最佳方式进行一些研究之后,我决定遍历可见的datagridview并测试每个可见的。这是我想到的代码。不幸的是,当运行它时,所有的测试都失败了,它尝试执行else子句,然后失败,输入字符串的格式不正确。不过,我不认为这是问题,因为我在价格和货币价值观看,他们“不存在于当前的背景下......”现在我坚持,并希望得到一些帮助。也许我去这个错误的方式...对筛选的DataGridView执行计算
感谢
哈利
for (int i = 1; i < dataGridView1.Rows.Count; i++)
{
if (dataGridView1["currency", i].ToString() == "USD")
{
myCommission += double.Parse(dataGridView1["commission", i].ToString()) * (double.Parse(dataGridView1["price", i].ToString()) * UStoGB);
}
else if (dataGridView1["currency", i].ToString() == "EURO")
{
myCommission += double.Parse(dataGridView1["commission", i].ToString()) * (double.Parse(dataGridView1["price", i].ToString()) * EUtoGB);
}
else
{
myCommission += double.Parse(dataGridView1["commission", i].ToString()) * double.Parse(dataGridView1["price", i].ToString());
}
}
我试着做他们原来的数据源,但就是无法工作,如何只操纵过滤的数据而不是数据源中的所有数据。仍然按照我的方式进行编程,所以仍然有很多东西要学习......感谢指针。 – user1152667 2012-01-17 07:46:15
使用DataTable.DefaulView,它假设您的过滤结果并进行计算,如DataTable.DefaultView.ToTable()。Compute(SUM(IIF(currency ='USD',commission * price * whatewer,IIF(currency = '欧元',佣金*价格* whatewer2))))等等。你也使用LINQ来做你的计算。 – pistipanko 2012-01-17 07:56:52