一个datatable,里面有从数据库查询的数据,现在我想在datatable中添加一列“合计”,统计每一行的总值,该怎么添加,我从网上找到了一个办法,但都没用....求解....

解决方案 »

  1.   

    2个方法:
    1。给datatable加一个列   datatable.Columns.Add("合计", typeof(System.String));
    2。查询的时候    把一个字段或者一个函数 as 成“合计”
      

  2.   

    给DataTable加个列,然后在RowDataBound事件处理代码中可以访问当前处理的行的所有列是吧?这时把各个列的值合计后赋值给新增列。
      

  3.   

    datatable.Columns.Add("Total");
    这样加进去就行了
    然后把这一行的计数列汇总一下 存入到这列中。
      

  4.   

    我用的是第一种方法,但是往列添加内容时老是提示“列不属于表 ”
    用<%#Eval("")%>显示时也提示这个
    代码是下面,帮看看问题出哪
    1.添加列        DataTable table = cd.showall(sql);//数据库查询得到
            column.ColumnName = "total";//列名
            column.Caption = "total";
            column.DataType = System.Type.GetType("System.String");
            column.ReadOnly = false;
            table.Columns.Add(column);2.往列添加数据代码for (int i = 0; i < table.Rows.Count; i++)
    {
     table2.Rows[i]["total"] = "50";
    }
      

  5.   

    asp.net的GridView不是有个RowDataBound事件吗? 明摆着你必须在这个事件处理程序里写的!必须!知道吗?
      

  6.   

    我不是很明白你的意思,你是说要在RowDataBound事件中计算合计值,然后添加到列中?
      

  7.   

    查询一个空列出来,然后循环datatable编辑空列的值就行了
      

  8.   

    我一般用模板列        <asp:Repeater ID="a_list" runat="server">
              <ItemTemplate>
    <asp:Literal  runat="server"  Text='<%# DataBinder.Eval(Container, "DataItem.数量") * DataBinder.Eval(Container, "DataItem.单价")  ></asp:Literal>
            </ItemTemplate>
            </asp:Repeater>
      

  9.   

    我要发疯了,呵呵^我要强调多少遍RowDataBound呢!你往上看,我哪个回复中没提到它!for (int i = 0; i < table.Rows.Count; i++)
    {
     table2.Rows[i]["total"] = "50";
    }
    这种方式根本就违背原则, 什么原则我也说不清楚. 反正asp.net稍微熟悉的都不会这么搞!
      

  10.   

     DataTable table = cd.showall(sql);//数据库查询得到
    var column = new DataColumn();
            column.ColumnName = "total";//列名
            column.Caption = "total";
            column.DataType = System.Type.GetType("System.String");
            column.ReadOnly = false;
            table.Columns.Add(column);
      

  11.   

    存数据可以在SQL中进行,也可以在填充至datatable后进行
    select (field1+field2) AS '合计' from table ..在代码中统计 column.Expression = "filed1 + filed2";
      

  12.   


    这种方法是可以用的,查询数据库的列里面的值可以通过table2.Rows[i]["列名"] 获得值,也可以修改里面的值,但是新加的列不行,这个我是验证过的.....
      

  13.   

    DEV的控件吧
    这个已经都封装好了的