先看我的代码:
int i=0;
GridView1.Rows[1].Cells[i + 3].Text=GridView1.Rows[0].Cells[i + 3].Text+GridView1.Rows[1].Cells[i + 2].Text;
最后执行的结果:
如果GridView1.Rows[0].Cells[i + 3]=250.50
GridView1.Rows[1].Cells[i + 2].Text=2
那么GridView1.Rows[1].Cells[i + 3]=250.52
问题是我希望得到的结果是:252.50请问应该怎么修改它呢,而当某一个单元格是空时(即没有任何数据)又怎么处理呢,谢谢!!!

解决方案 »

  1.   

    可以在组合sql语句的时候就实现这个功能,直接绑定数据就可以了
      

  2.   

    GridView1.Rows[1].Cells[i + 3].Text=Convert.ToDecimal(GridView1.Rows[0].Cells[i + 3].Text)+Convert.ToDecimal(GridView1.Rows[1].Cells[i + 2].Text);
      

  3.   

    sql:select a,b,a+b as c from table1需要转换数据类型的时候,比如a,b等是字符等,可以cast(a as decimal)+cast(b as decimal) as c 这样得到的c列就是相加的和了
      

  4.   

    可在数据库中就计算好。或者给数据源加个表达示列。如dt.Columns.Add("SubTotal",typeof(decimal),"字段1+字段2");
      

  5.   

    如果没有数据的时候判断一下,赋值为0绑定数据的事件中:double a=0;
    double b=0;
    if(GridView1.Rows[0].Cells[i + 3].Text!=null&&GridView1.Rows[0].Cells[i + 3].Text.CompareTo("")!=0)
    {
        a=Convert.ToDecimal(GridView1.Rows[0].Cells[i + 3].Text);
    }
    if(GridView1.Rows[0].Cells[i + 2].Text!=null&&GridView1.Rows[0].Cells[i + 2].Text.CompareTo("")!=0)
    {
        b=Convert.ToDecimal(GridView1.Rows[0].Cells[i + 2].Text);
    }GridView1.Rows[1].Cells[i + 3].Text = (a+b).ToString();
      

  6.   

    谢谢各位给出的方法,我都去试了一下,出现错误提示:
    无法将类型“decimal”隐式转换为“double”。存在一个显式转换(是否缺少强制转换?)
    可能是因为有些空格是空所以就出现了这个错误提示呢,还有就是如果为空我如何去把他置为0.
      

  7.   

    无法将类型“decimal”隐式转换为“double”。
    是一运行就检测出来的错误,有什么方法解决吗,我用的是C#2005 asp.net
    谢谢!!
      

  8.   

    无法将类型“decimal”隐式转换为“double”。
    =====>
    你是用的楼上谁的代码?转换一下就可以了
      

  9.   

    GridView1.Rows[1].Cells[i + 3].Text=Convert.ToDouble(GridView1.Rows[0].Cells[i + 3].Text)+Convert.ToDouble(GridView1.Rows[1].Cells[i + 2].Text);
      

  10.   

    Eri正解哦,就是将decimal改为double就好了,具体我也不知道是为什么,反正这样可以就这样了.