DataGirdView中有数据如下:姓名,课程,成绩
张三,语文,90
张三,数学,80
李四,语文,100
李四,数学,90我现在想在DataGirdView中加上一列总分合计,数据只在DataGirdView中,没有数据库姓名,课程,成绩,合计
张三,语文,90,170
张三,数学,80,170
李四,语文,100,190
李四,数学,90,190
急!

解决方案 »

  1.   

        private void addtotal()
            {
                this.dataGridView1.Columns.Add("total", "总和");
                Dictionary<string, int> total = new Dictionary<string, int>();
                foreach (DataGridViewRow dr in this.dataGridView1.Rows)
                {
                    if (dr.Cells[0].Value != null)
                    {
                        string name = dr.Cells[0].Value.ToString();                    int t = Convert.ToInt32(dr.Cells[2].Value.ToString());
                        if (total.ContainsKey(name))
                            total[name] += t;
                        else
                            total.Add(name, t);
                    }            }
                foreach (DataGridViewRow dr in this.dataGridView1.Rows)
                {
                    if (dr.Cells[0].Value != null)
                    {
                        string name = dr.Cells[0].Value.ToString();
                        if (total.ContainsKey(name))
                            dr.Cells[3].Value = total[name];
                        else
                            dr.Cells[3].Value = 0;
                    }
                }        }
      

  2.   

    虽然没有数据库 但也可以使用一个DataTable的存储 如果这样的话 只要加一个列并给它的Expression属性赋值就可以
      

  3.   


    Dim sumObject As Object
        sumObject = table.Compute("Sum(Total)", "EmpID = 5")
      

  4.   

    给DataGirdView的数据源加一条记录,把前面的数据的和,放进去,然后绑定,就可以。如果需要特殊处理,可以调用逐行绑定事件,自己进行处理。
      

  5.   

    看明白了二楼的代码,多谢!OKl饿!
      

  6.   

    应该是重新datatable dt = ds.table一下,再在dt 里面做一次计算,完了后再将dt绑定一下就可以了