datagridview涉及计算问题

来源:互联网 发布:找图片的软件 编辑:程序博客网 时间:2024/04/30 05:48

1.
string sql_select = "select C_Name,sum(C_ShouRu) as sr,sum(C_ZhiChu) as zc,sum(C_Jieyu) as jy from t_szk_a where C_Date between #" + dtp_start.Text + "# and #" + dtp_end.Text + "# group by C_Name";

 DataTable dt = DB_DataGridView.DGV_source(sql_select);  //调用执行sql,返回一个DataTable
 double sumshouru = 0;  //总收入
 double sumzhichu = 0;  //总支出
 double sumjieyu = 0;   //总结余
 double temp_percent = 0;
 //计算总收入、总支出、总结余
 for (int i = 0; i < dt.Rows.Count; i++)
 {
 sumshouru += Convert.ToDouble(dt.Rows[i]["sr"]);
 sumzhichu += Convert.ToDouble(dt.Rows[i]["zc"]);
 sumjieyu += Convert.ToDouble(dt.Rows[i]["jy"]);
 }
 dt.Columns.Add(new DataColumn("sr_per"));   //增加收入百分比列
 for (int j = 0; j < dt.Rows.Count; j++)
 {
 temp_percent = Convert.ToDouble(dt.Rows[j]["sr"]) / sumshouru;
 dt.Rows[j]["sr_per"] = temp_percent.ToString("0.00%");
 }
 dt.Columns.Add(new DataColumn("zc_per"));  //增加支出百分比列
 for (int k = 0; k < dt.Rows.Count; k++)
 {
 temp_percent = Convert.ToDouble(dt.Rows[k]["zc"]) / sumzhichu;
 dt.Rows[k]["zc_per"] = temp_percent.ToString("0.00%");
 }
 dt.Columns.Add(new DataColumn("jy_per"));  //增加结余百分比列
 for (int m = 0; m < dt.Rows.Count; m++)
 {
 temp_percent = Convert.ToDouble(dt.Rows[m]["jy"]) / sumjieyu;
 dt.Rows[m]["jy_per"] = temp_percent.ToString("0.00%");
 }

 dataGridView1.DataSource = dt;
2.DataGridView实现页脚统计方法
private void BindDataOnGrid()
        
{
            dsProductTableAdapters.ProductsTableAdapter adtProduct 
= new GetTotalAtFooter.dsProductTableAdapters.ProductsTableAdapter();
            dsProduct.ProductsDataTable productTable 
= adtProduct.GetProducts(); 
            dsProduct.ProductsRow pr 
= productTable.NewProductsRow();
            pr.ProductName 
= "总计:";
            
decimal totalPrice = 0M;
            
foreach (dsProduct.ProductsRow dpr in productTable.Rows)
            
{
                totalPrice 
+= dpr.UnitPrice;
            }

            
//pr.UnitPrice = Convert.ToDecimal(adtProduct.GetSumUnitPrice());//用sql的sum函数在数据集里面进行计算
            pr.UnitPrice = totalPrice;//用程序的方法计算DataTable里面的值
            pr.Discontinued = false;
            productTable.Rows.InsertAt(pr, productTable.Rows.Count);
            dataGridView1.AutoGenerateColumns 
= false;
            dataGridView1.DataSource 
= productTable;
        }



原创粉丝点击