我想在C#+ACCESS数据库中查询出介于指定日期条件(text3.text和text4.text,二者中分别输入起止日期,如2008-08-13格式)的所有记录显示在GridView2对象中(下面代码的绿色部分,可以实现),同时汇总出这些记录的ACEPAY字段的总和,并将这个结果赋于label1.text显示在屏幕是上,我写的部分代码如下,请大家指教红色处这一关键的汇总语句该怎样写,或赐予更简单的方法,不胜感激!学习学习,现在感觉学习C#这个东东还真有点困难,望高手多多赐教,谢谢!         string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/data/abc.mdb");
        OleDbConnection conn = new OleDbConnection(strConn);
        conn.Open();
        DateTime datt3 = Convert.ToDateTime(TextBox3.Text);
        DateTime datt4 = Convert.ToDateTime(TextBox4.Text);
        String sql = "select numbe1,nam1,se1,from xsjf where enter_dat1 > #" + datt3 + "#  and enter_dat1 < #" + datt4 + "#";
////以下这句为汇总满足条件的记录的ACEPAY字段的和,我写的这个不对,请大家指教
        select sum(ACEPAY) from ACS where enter_dat1 > #" + datt3 + "#  and enter_dat1 < #" + datt4 + "#";        
       
        OleDbCommand cmd = new OleDbCommand(sql, conn);
        OleDbDataReader reader = cmd.ExecuteReader();
        GridView2.DataSource = reader;
        GridView2.DataBind();

        label1.text=??????

解决方案 »

  1.   

    定义一个模块级的变量,处理gridview的rowDataBound事件进行加和。
      

  2.   

    不要用datareader
    用dataset
    String sql = "select numbe1,nam1,se1,ACEPAY from xsjf where enter_dat1 > #" + datt3 + "#  and enter_dat1 < #" + datt4 + "#"; 
    //这sql有问题的吧...ACS表名?
    DataSet ds = new DataSet();//填充ds,去查dataset的用法
    DataTable dt = ds.Tables[0];
            GridView2.DataSource = dt; 
            GridView2.DataBind(); label1.Text=dt.Compute("sum(ACEPAY)","").ToString();
      

  3.   

    哦,String sql = "select numbe1,nam1,se1,ACEPAY from xsjf where enter_dat1 > #" + datt3 + "#  and enter_dat1 < #" + datt4 + "#"; 
    是错了,应为String sql = "select numbe1,nam1,se1,ACEPAY from ACS where enter_dat1 > #" + datt3 + "#  and enter_dat1 < #" + datt4 + "#"; 
    谢谢!我现就去学学dataset的用法。