rs.Open(CRecordset::dynaset,"select * from Bom order by No desc");
rs.Open(CRecordset::dynaset,"select * from Bom order by No");
我想对Bom表中所有数据按照No项进行排序(在access数据库中)可是查出来的数据并没有排序,为什么呢?哪位大哥大姐教教我如何排序?急呀!

解决方案 »

  1.   

    你是用ListCtrl显示的吧,Sort属性设置一下就好了
      

  2.   

    我是用TreeCtrl和Excel来显示的,总之显示结果没有排序
      

  3.   

    rs->sort = "No desc"
      

  4.   

    是这样的,access数据库中有一张表Bom,表中有很多数据,我想按照表中的No项对数据排序后分别在TreeCtrl和Excel中显示出来。采用了语句:
    rs.Open(CRecordset::dynaset,"select * from Bom order by No desc");
    rs.Open(CRecordset::dynaset,"select * from Bom order by No");
    数据是显示出来了,可是这些数据没有按照我所需要的升序/降序排列,需要各位高手帮忙!!
    谢了先!
      

  5.   

    在打开之前设置CRecordset的成员m_strSort试试
    rs.m_strSort = "No";
    rs.Open(CRecordset::dynaset,"select * from Bom order by No desc");
    rs.Open(CRecordset::dynaset,"select * from Bom order by No");
    ---------
      ++C++
    ---------
      

  6.   

    楼上的大哥,我一加上
    rs.m_strSort = "No";
    程序运行时提示:系统资源不足,请退出所有程序!
      

  7.   

    用下面的方法打开数据库试试:CDatabase m_dbConn;
    BOOL fOK = m_dbConn.Open("test");//打开数据库
        TRACE("connect fOK=%d\n",m_dbConn);CRecordset rs(&m_dbConn);
    rs.Open(CRecordset::forwardOnly,"select * from Bom order by No desc");
    rs.Open(CRecordset::dynaset,"select * from Bom order by No");
      

  8.   

    这一条命令:
    TRACE("connect fOK=%d\n",m_dbConn);
    加不加都一样,因为数据是显示了,但还是没有排序
      

  9.   

    BOOL fOK=db.OpenEx(_T("DSN=abc"), CDatabase::noOdbcDialog);
    TRACE("connect fOK=%d\n",db);
    数据是显示了,但还是没有排序 BOOL fOK = db.Open("DSN=abc");
    TRACE("connect fOK=%d\n",db);
    或 BOOL fOK = db.Open("abc");
    TRACE("connect fOK=%d\n",db);
    程序运行时提示:系统资源不足,请退出所有程序!
      

  10.   

    你既然用TreeCtrl来显示,
    那排序的过程应该在TreeCtrl来控制.其实我想
    rs.Open(CRecordset::forwardOnly,"select * from Bom order by No desc");
    所得到的记录是按顺序来排列的,
    但是你让它们显示出来时顺序就不会按刚才的排序了,
    因为控件有自己的排序方法.
      

  11.   

    m_wndTreeCtrl.SortChildren(HTREEITEM Item);你用树控制吧!
      

  12.   

    我知道原因了,老兄,你的错误是因为用了特殊字符,你把列名(No)换成别的比如(abc)就完全没问题了。!