我用datatable数据源,绑定到datagrid,现在合计一列,显示在页脚,
datatable有一列数据类型是string(这一列必须设成string,数据都是数字),我现在要用
Convert.ToString(dt.Compute("Sum(goodsJh)",""))合计一列怎么把这一列先转换一下,再合计。

解决方案 »

  1.   

    dt.Compute("sum([goodsJh])","1>0").ToString();
      

  2.   

    第一:你应该明白,在DataTable中每个单元格的数据不是string类型的也不是int类型的,而是object类型的(DataTable.Rows.Item["列名"]中的数据是object类型),所以直接从DataTable来的数据合计不仅仅要转换一列数据,而是要转换每一列。从这个角度讲,最好在数据库中处理,不要再DataTable中处理;
    第二:如果一定要在DataTable中处理合计,则相应代码应该写到OnItemCreated事件中
      

  3.   

    搞错了,还以为你是要把一行数据累加合计。
    直接先绑定,在从DataGrid中单元格中循环提取数据(类型是string),转换后累加就可以了吧。
      

  4.   

    //求合计
    pubilc DataTable Total(DataTable dt)
    {
        DataTable tempDt = dt.Clone();
        DataRow tempDr = tempDt.NewRow();
        tempDr["goodsJh"] = dt.Compute("Sum(goodsJh)",string.empty);
        tempDt.Add(tempDr);
         
        dt.Mereg(tempDt);
        dt.AccpetSubmit();
        return dt;
    }this.GirdView.DataSource = this.Total(dt);
    this.GridView.DataBind();