先记得发过,不知在哪去了。
各高手,我用下面的代码可以将ACCESS中满足条件的记录显示在GridView1中,但我想进一步学习,想将ACCESS中满足条件的记录按clas1字段进行分类,再按pay字段进行分类汇总,最后将分类汇总的结果显示在GridView1中,请高手指点,谢谢!!!!
    
        string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/data/xsgl.mdb");
        OleDbConnection conn = new OleDbConnection(strConn);
        conn.Open();
        String sql = "select nam1,clas1,pay from ACDF where fiel1='" + DropDownList2.SelectedValue.Trim() + "' ;
        OleDbCommand cmd = new OleDbCommand(sql, conn);
        OleDbDataReader reader = cmd.ExecuteReader();
        GridView1.DataSource = reader;
        GridView1.DataBind();

解决方案 »

  1.   

    string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/data/xsgl.mdb"); 
            OleDbConnection conn = new OleDbConnection(strConn); 
            String sql = "select nam1,clas1,pay from ACDF where fiel1='" + DropDownList2.SelectedValue.Trim() + "' ; 
            SqlDataAdapter da=new SqlDataAdapter(sql, conn); 
            DataSet ds=new DataSet();
            da.Fill(ds);
     
            GridView1.DataSource = ds.Tables[0]; 
            GridView1.DataBind();
      

  2.   


    String sql = "select clas1,sum(pay) from ACDF 
    where fiel1='" + DropDownList2.SelectedValue.Trim() + "' ; 
    group by clas1
      

  3.   

    谢谢楼上的回复,
    二楼的好象没有体现出“分类汇总”,是不是?
    三楼的回复是用该名直接替换原来的sql语句吗?运行好象不行。
    请高手们指教,谢谢!
      

  4.   

    String sql = "select clas1,sum(pay) from ACDF where fiel1='" + DropDownList2.SelectedValue.Trim() + "' group by clas1" ; 
      

  5.   

    在上面高手的指导下,我用以下语句,但出现错误:找不到类型或命名空间名称“OleDataAdapter”(是否缺少 using 指令或程序集引用?)   ,这个错好象在以下兰色语句处,再请高手指点,谢谢!!
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/data/xsgl.mdb"); 
            OleDbConnection conn = new OleDbConnection(strConn); 
            String sql = "select clas1,sum(pay) from ACDF where fiel1='" + DropDownList2.SelectedValue.Trim() + "' group by clas1" ; 
            SqlDataAdapter da=new SqlDataAdapter(sql, conn); 
            DataSet ds=new DataSet(); 
            da.Fill(ds); 
            GridView1.DataSource = ds.Tables[0]; 
            GridView1.DataBind();
      

  6.   

     这样行了,把下面兰色的语句改了,但是我发现好象显示输出的GridView1中只能带人分类字段"clas1"和替代汇总字段的"临时字段"两个字段,但是我想还要显示其它不是汇总的字段,应该怎样写?请高手指教,谢谢!
            string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("~/data/xsgl.mdb"); 
            OleDbConnection conn = new OleDbConnection(strConn); 
            String sql = "select clas1,sum(payed_total) from xsjf where fiel1='" + DropDownList2.SelectedValue.Trim() + "' group by clas1" ;
            OleDbDataAdapter da=new OleDbDataAdapter(sql, conn); 
            DataSet ds=new DataSet(); 
            da.Fill(ds); 
            GridView1.DataSource = ds.Tables[0]; 
            GridView1.DataBind();
      

  7.   

     这主要是写sql的问题,和gridview没什么关系。
    还是问你需要什么样的数据吧,然后告诉你sql怎么写
      

  8.   

        Public Function Vfroms(ByVal myTable As String) As DataTable
            mySql = "select Vhostname,count(*) as allcome from Vrecords group by Vhostname order by count(*) desc"
            Return ExecDataSet(mySql, myTable).Tables(0)
        End Function
      

  9.   

    谢谢!
    我想用的数据是:从C#+ACCESS中查询满足条件的记录,并按clas1字段进行分类,再按pay字段进行分类汇总,最后将分类汇总的结果及其它未参加汇总的字段全都显示在GridView1中,我试了一下好象只能显示clas1、sum(pay) ,而如se1、name、filed1等没参加汇总的字段一旦写入String sql = "select clas1,sum(pay) 、se1、name、filed1 from xsjf where fiel1='" + DropDownList2.SelectedValue.Trim() + "' group by clas1" ; 就出现错误,请高手指点,谢谢!!!!
      

  10.   

    对不起,这句应该是:String sql = "select clas1,sum(pay),se1,name,filed1 from xsjf where fiel1='" + DropDownList2.SelectedValue.Trim() + "' group by clas1" ;
    上面红色处写成顿号了,应为逗号,可问题还是没有解决哈!
      

  11.   

    跟你个参考:
    http://blog.csdn.net/gisfarmer/archive/2008/12/30/3648761.aspx
    http://blog.csdn.net/gisfarmer/archive/2009/01/04/3701136.aspx
    完全可以解决你的问题。
      

  12.   

    是指你沒引入 using System.data.oledb;命名空間
      

  13.   

    在ACCESS中进行了实例查询,原来是用FIRST()即可显示其它非分类关键字的字段,即显示同类中的第一条记录的值,呵呵!
      

  14.   

    应该是你的sql语句的语法不对,
    首先在sql语句里面
    按条件排序语法并不是那样的
    试试这种
    select clas1,sum(pay),se1,name,filed1 from xsjf group by clas1 having fiel1='" + DropDownList2.SelectedValue.Trim() + "'
      

  15.   

    个人认为取数还是得用SQL语句来实现,至于取得了数据怎么在gridview上显示例如相同行的记录进行合并这是可以利用gridview的一些事件来实现。