直接用sql语句实现:
select A,B,C,A+B+C as 合计
from t1

解决方案 »

  1.   

    以上有误, 应为:
    c1 = a1 - b1;    c2 = c1 + a2 - b2; c3 = c2 + a3 - b3; 以此类推。
      

  2.   

    1.你可以做个循环来解决问题不过加一点东西!
    C0 = 0;c1 = C0 + a1 - b1;    c2 = c1 + a2 - b2; c3 = c2 + a3 - b3;
    这样就很简单了三,先取出a,b的表做一个循环得到所有的c,那么再进行数据绑定就可以了!
      

  3.   

    c[0]=0;
    i=1;
    while(c[i]<n)
    {
    c[i]=c[i-1]+a[i]-b[i];
    ++i;
    }
    这就是cl的算法;
      

  4.   

    --一条经典的统计输出语句--Query output.
    DECLARE @iMaxID int 
    DECLARE @iMinID int 
    SELECT @iMinID = MIN(iID), @iMaxID = MAX(iID) FROM [t1] 
    DECLARE @tb table(iID int,a1 money,b1 money,c1 money)
    WHILE (@iMinID <= @iMaxID)
    BEGIN
    INSERT INTO @tb (iID,a1,b1,c1) 
    (SELECT t0.iID,t0.a1,t0.a2 ,t1.c1 
     FROM (SELECT iID, SUM(a1 - b1) AS c1 
    FROM t1
    WHERE @iMinID <= @iMaxID) t0
         inner join t1
         on t0.iID = t1.iID
    )
    SET @iMinID = @iMinID + 1
    END
    SELECT * FROM @tb
      

  5.   

    先将前两列从数据库中查出,得到一个DataTable table1;
    再作一个循环,算出第三列,重新生成一个包含第三列的DataTable就可以了。
    程序如下:
    private DataTable GetNewTable(DataTable oldTable){
    DataTable result = new DataTable();
    foreach(DataColumn column in oldTable.Columns){
    result.Columns.Add(column.ColumnName);
    } result.Columns.Add("费用3"); double feiyong3 = 0.0;
    foreach(DataRow row in oldTable.Rows){
    DataRow currentRow = result.NewRow();
    currentRow["费用1"] = row["费用1"];
    currentRow["费用2"] = row["费用2"];
    feiyong3 += Convert.ToDouble(row["费用2"].ToString()) - Convert.ToDouble(row["费用1"].ToString());
    currentRow["费用3"] = feiyong3; result.Rows.Add(currentRow);
    } return result;
    }
      

  6.   

    ZhengJiang 的算法和流浪漢的都正确.謝謝.流浪漢的比較直觀,綁定很快啦,不錯...thank you a lot...SangGengYi Sir:
    please give ZhengJing & JinXj 100Fun/Man
      

  7.   

    To: jinxj
    我用你的代码,第三列怎麽没反应?
      

  8.   

    我觉得第一个使用sql就可以解决了。
    第二个在列上使用sql,行上可以在.cs文件中处理。下面是一个例子:private void SetFooterStatisticData()
    {
    //计算页面小计的
    double dYearplan,dTotalFee,dRemain;

    dYearplan=0.00;
    dTotalFee=0.00;
    dRemain=0.00; if(dgProgressReport.Items.Count>0)
    {
    for(int i=0;i<dgProgressReport.Items.Count;i++)
    {    
    Label _labDept=(Label)dgProgressReport.Items[i].FindControl("LabDept");  if(_labDept!=null)
    {
    if(_labDept.Text.Trim().Length>0)
    {
    Label _labPlan=(Label)dgProgressReport.Items[i].FindControl("LabPlan"); 
    Label _labTotal=(Label)dgProgressReport.Items[i].FindControl("LabTotal");  //计算年度预算的合计
    if(_labPlan.Text.Trim().Length>0)
    dYearplan=dYearplan+double.Parse(_labPlan.Text.ToString()); //计算累计用款的合计
    if(_labTotal.Text.Trim().Length>0)
    dTotalFee=dTotalFee+double.Parse(_labTotal.Text.ToString());
    }
    }

    } //计算剩余额度
    dRemain=dYearplan-dTotalFee; _labYearPlan.Text=dYearplan.ToString("#0.00");  
    _labTotalFee.Text=dTotalFee.ToString("#0.00");  
    _labRemain.Text=dRemain.ToString("#0.00");  }

    }
      

  9.   

    将生成的新的DataTable绑定到DataGrid上,即:
    this.dataGrid1.SetDataBinding(table,null);
    其中table是指生成的新的DataTable。
      

  10.   

    在sql里面写一个函数把,返回是一个表,这样做比较方便
      

  11.   

    逻辑比较复杂,为什么还要用datagrid ? 用表格自己输出不一样?
      

  12.   

    To:mywebcom
    这个帖子是有月余,但第一个问题还未解决,不知以上哪个答案是正确的?
    请明示。解决了马上结帐。
      

  13.   

    有没有winform for vbnet的?