代码如下:
 private double sum = 0;
    protected void gvInfo_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        
        if (e.Row.RowIndex >= 0)
        {
            sum += Convert.ToInt32(e.Row.Cells[2].Text);
        }        Label1.Text = sum.ToString();
    }
我数据显示的GridView是分页了的。sum的值只是当前页的第三列的和,却不是整个GridView的第三列的和,应该怎么改呢?

解决方案 »

  1.   

    你那是个“2”,当然显示的是第三页的和了。
    你把它改成最后一页的index试试。
      

  2.   

    简单办法:数据绑定到gv之前先算sum
      

  3.   

    用SQL语句算SUM我也试过了。但是算完之后该怎样把Sum赋值给Label1呢?
      

  4.   

    比如:string sqlstr = "select sum(Money)  from Jinzhang where  Data like '" + ddlYear.SelectedValue + "%'"算完之后,怎样把值赋给Label1?
      

  5.   

    不能让label1.text=“你的算出来的值”吗?;
      

  6.   

        private double sum = 0;
        protected void gvInfo_RowDataBound(object sender, GridViewRowEventArgs e)   
        {
            DataSet ds = new DataSet(); //数据库取        for (int i = 0; i < this.gvInfo.Rows.Count; i++)
            {
                if (gvInfo.Rows[i].Cells[2].Text != "")
                {
                    sum += Convert.ToDouble(gvInfo.Rows[i].Cells[2].Text.ToString());
                }
            }
            Label1.Text = sum.ToString();
        }
    还是不行,为什么。
      

  7.   

    string sqlstr = "select sum(Money) from Jinzhang where Data like '" + ddlYear.SelectedValue + "%'"
    运行完后,怎样把SUM的值显示到Label上。麻烦给出点代码,光口头上说“等于算出来的值”,一点意义都没有,刚接触C#,我不能什么都会吧。
      

  8.   

     for (int i = 0; i < this.gvInfo.Rows.Count; i++)
      {
      if (gvInfo.Rows[i].Cells[2].Text != "")
      {
      sum += Convert.ToDouble(gvInfo.Rows[i].Cells[2].Text.ToString());
      }
      }
      Label1.Text = sum.ToString();
    感觉你那不该写在那个事件里,就直接写在数据绑定之后呢
      

  9.   

    Cells[2]
    是第三列,不是空啊
      

  10.   

    你的GridView数据显示正常不?如果正常,可以通过当前页码和每一页有多少数据得出当前页数据在数据源中的行的起始编号,然后根据编号筛选数据相加就OK了
      

  11.   

    哦,不好意思,我问错了,我的意思是:你的money这一列中是不是有为空的值?从你的代码看出,有为空的时候就跳出或者出错。要不然你再加一个当“为空时”的判断吧。
      

  12.   

    GridView显示正常,Money这一列都不为空。
    现在我放弃用这个方法了,打算用SQL语句求和。因为GridView显示的是我多条件查询后的数据的。貌似我用这方法会把数据库里的所有Money列的数据给求和了。
    string sqlstr = "select sum(Money) as Money from Jinzhang where Data like '" + ddlYear.SelectedValue + "%'".
    这是我的SELECT语句。然后我怎么把Money的和的值用Label控件显示出来?
      

  13.   

    建议在邦定数据之前,直接统计你数据源表中的第3列的和,然后再邦定,并且不要用GridView里面的数据来统计.如果你要用SQL的方式,执行一个Sql语句应该有返回值吧,直接使用返回值不就完了吗