用sql语句可以得到select sum(money) from table group by ID这样通过id号分组相加的值
现在所有的数据全部放在DataTable里面,调用compute方法好像只支持相加里面所有的数据,而起返回类型位object类型,应该是不能返回每组的金额相加数.想问问显示此功能.我要把相加的id和相应的 金额写进文件里,并且打印.现在求教相加的方法.

解决方案 »

  1.   

    DataTable不支持分组功能。如果是Oracle数据库,可以用Rollup分析函数。
      

  2.   

    public DataTable reDataTable(DataTable dat)
        {
            DataTable dt = new DataTable();
            DataColumn dc = new DataColumn();
            dc.ColumnName = "money";
            dc.DataType = System.Type.GetType("System.Double");
            dt.Columns.Add(dc);
            DataColumn dcc = new DataColumn();
            dcc.ColumnName = "id";
            dcc.DataType = System.Type.GetType("System.Int32");
            dt.Columns.Add(dcc);        ArrayList arr = new ArrayList();
            ArrayList arrCount = new ArrayList();
              foreach(DataRow drr in dat.Rows)
            {
                int i = arr.IndexOf(drr["did"].ToString().Trim());
                if ( i < 0)
                {
                    arr.Add(drr["did"].ToString().Trim());
                    arrCount.Add(drr["money"]);            }
                else
                {
                    arrCount[i]= Convert.ToInt32(drr["money"].ToString())+double.Parse(arrCount[i].ToString());            }
            
            }        for (int ii = 0; ii < arrCount.Count; ii++)
            {
                DataRow dr = dt.NewRow();
                dr["money"] = arrCount[ii].ToString();
                dr["id"] = arr[ii].ToString();
                dt.Rows.Add(dr);
               
            }        return dt;
        }