现有datagridview1,内有一列全为数值。另有一textbox1,需显示该列的数值相加值(即合计)。如何用代码实现?

解决方案 »

  1.   

    datagridview1有没有分页显示?
    如果不分页的话,可以直接在绑定的时候把值算出来,如果分页就需要手动加了。
    string ste = this.dataGridView1.SelectedCells[3].Value.ToString();
      

  2.   


    对的,没有分页的话就将检索的数据源中,这一列的值累加
    然后设置到文本框中如果有分页
    在gridview指定数据源
    gridview1.DataSource = dt;
    gridview1.DataBind();//之后添加
    double sum = 0;
    for(int i=0;i<gridview1.Rows.Count;i++)
    {
       sum += Convert.ToDecimal(gridview1.Rows[i].Cells[数字列列号].Text.Trim());
    }
    textbox1.Text = sum.ToString();
      

  3.   

    “System.Windows.Forms.DataGridViewCell”并不包含“Text”的定义
      

  4.   

    2楼的代码,在  sum += Convert.ToDecimal(gridview1.Rows[i].Cells[数字列列号].Text.Trim());
    提示如下:“System.Windows.Forms.DataGridViewCell”并不包含“Text”的定义
      

  5.   


    int sun=0;
    fto(int i=0;i<datagridview.Rows;i++)
    {
      sun=sun+Convert.ToInt32(this.dataGridView1.SelectedCells[3].Value.ToString());
    }
    或int Total = 0;
                    OleDbConnection con = new OleDbConnection("provider=microsoft.jet.OLEDB.4.0;Data source=.\\odc.db");
                    con.Open();
                    OleDbCommand com = new OleDbCommand("select top 1000 * from goods", con);
                    OleDbDataReader odr = null;
                    odr = com.ExecuteReader();
                    if (odr != null)
                    {
                        while (odr.Read())
                        {
                            Total = Total + Convert.ToInt32(odr["数量"].ToString());
                        }
                    }
                    con.Close();
      

  6.   

    刚刚打错,是全表,弄成选定了.int sun=0;
    fto(int i=0;i<datagridview.Rows;i++)
    {
    sun=sun+Convert.ToInt32(dataGridView2[列, i(行)].Value.ToString());
    }
      

  7.   

    兄弟们,不用搞得这么复杂,我有简单的
    首先数据源为DataView,再写表格的DataBindingComplete事件        private void dg1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
            {
                txt1.Text = dataView1.Table.Compute("sum(金额)", dataView.RowFilter).ToString();
            }
      

  8.   

    还是有问题,我数据库里设这一列的类型为双精度,而且必须是这个类型,根据你sun=sun+Convert.ToInt32(dataGridView2[列, i(行)].Value.ToString());这一行的代码,有错误提示:  输入字符串的格式不正确。首先要解决这个问题,然后要考虑经过数次的类型转换,小数点后的值是否没有了?
      

  9.   


    自己转换下啊。
    把int改用double 类型。
    Convert.ToInt32更改为convert.todouble.灵活变通啊.
      

  10.   

    如果是不可datagridview1的列不能做编辑,直接在绑定的时候算出来写到TEXT就可以了,
    如果是可以编辑的,绑定的时候把合值算出来写到TEXT中,再GrdDantai_CellBeginEdit事件中记录datagridview1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value为编辑前的值和在datagridview中的GrdDantai_CellEndEdit事件中记录datagridview1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value为编辑后的值,在GrdDantai_CellEndEdit事件中做加减就可以了,
      

  11.   

    decimal sun=0;
    for(int i=0;i<datagridview.Rows;i++)
    {
      sun=sun+Convert.ToDecimal(this.dataGridView1.Rows[i].Cell["列名"].Value.ToString());
    }textbox1.Text = sun.ToString();
      

  12.   

    decimal sun=0;
    for(int i=0;i<datagridview1.Rows.Count;i++)
    {
      sun=sun+Convert.ToDecimal(this.dataGridView1.Rows[i].Cell["列名"].Value.ToString());
    }textbox1.Text = sun.ToString();
      

  13.   

    我写的是winform哦,怎么用大家的代码放进去后无论怎么改都会有错呢?sun=sun+Convert.ToDecimal(this.dataGridView1.Rows[i].Cell["列名"].Value.ToString());
    这一句就提示不包含cell的定义。另外13楼提到的在绑定时就算出来,这个要如何实现的?是要写代码呢还是仅仅对控件设置一下就好了?
      

  14.   

    string ste = this.dataGridView1.SelectedCells[3].Value.ToString(); 
    这里面的3是什么意思?
      

  15.   

    问题终于解决了原来是我把数据类型弄错了,应该是double型,我写成Decimal型了,基本功不行啊!!
      

  16.   


    SelectedCells[3]是代表第四列,那么SelectedColumns[3]又代表什么呢?我看vs2005解释说,SelectedCells是指定单元格集合,SelectedColumns是指定列集合。那么不是该用SelectedColumns吗?
      

  17.   


    DataTable dt = ds.Tables[0];
    int Count = 0;
    for(int i = 0; i < dt.Rows.Count; i++)
    {
       Count += int.Parse(dt.Rows[i]["数字字段"].ToString())
    }textbox1.Text = Count.ToString();---------------------------这样也行..
      

  18.   

    sun=sun+Convert.ToDecimal(this.dataGridView1.Rows[i].Cells["列名"].Value.ToString()); 
      

  19.   

     问题似乎就是单独求dataGridview的一列数据的 总和那dataGridview的数据在显示的时候如果是从数据库里查出的,为什么不直接在查出时算好 ,用一个变量传出来呢?从数据库里查信息的时候并在.Read()函数里实现累加,或用sql语句的sum()方法都可以直接算好,拿来直接用就可以了
      

  20.   

    我的代码是这样的
               SqlConnection con = Happytime.creatAAA();
                con.Open();
                SqlDataAdapter cmd = new SqlDataAdapter("select DCM 菜名,DMoney 单价,DSL 数量,DZJ 总消费 from DCZKtable where DZMC='"+textBox1.Text+"'",con);
                DataSet aa = new DataSet();
                cmd.Fill(aa);
                dataGridView1.DataSource = aa.Tables[0];
                con.Close();
      将数据查询出来后怎么打代码啊?请高手解答