11

这是我的代码,出现未知错误:

private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
{
        for (int i = 0; i < dataGridView1.Rows.Count; ++i)
        {

            object a = dataGridView1.Rows[i].Cells["price"].Value;
            object b = dataGridView1.Rows[i].Cells["tedad"].Value;
            double aNumber = 0;
            double bNumber = 0;
            if (a != null)
                aNumber = Double.Parse(a.ToString());
            if (b != null)
                bNumber = Double.Parse(b.ToString());
            dataGridView1.Rows[i].Cells["total"].Value = aNumber * bNumber;
            dataGridView1.RefreshEdit();
        }
        decimal sum = dataGridView1.Rows.OfType<DataGridViewRow>()
           .Sum(row => Convert.ToDecimal(row.Cells["total"].Value));
        txtDate.Text  = sum.ToString();

像这样的错误意味着OfType()

“System.Windows.Forms.DataGridViewRowCollection”不包含“OfType”的定义,并且没有扩展方法“OfType”接受“System.Windows.Forms.DataGridViewRowCollection”类型的第一个参数 WindowsFormsApplication1test

4

3 回答 3

16

确保你有:

using System.Linq;

Enumerable.OfType 方法

  • 命名空间: System.Linq
  • 程序集: System.Core(在 System.Core.dll 中)

在此处输入图像描述

于 2013-09-09T16:55:54.457 回答
4

确保您引用的是System.Linq命名空间,以 .NET 3.5 或更高版本为目标,包括System.Core作为参考。

于 2013-09-09T16:55:44.073 回答
0

在 for 循环中,只需将 ["total"] 值相加并将它们放在 txtDate.Text 字段中。

于 2013-09-09T17:01:59.820 回答