请问在VC里如何将数据库中的用户表显示在ListBox控件中,急!!!

解决方案 »

  1.   

    C++访问数据库比较复杂,先要用ado访问数据库,取到数据,然后一条条通过AddString放进去,不像C#那么方便,只要设置DataSource,做数据库访问的还是用C#比较好。
      

  2.   

    有的数据库有系统表,查询即可
    access的话
    RecordsetPtr   pRstSchemaTable( "ADODB.Recordset "); 
    pRstSchemaTable=m_pConn- >OpenSchema(adSchemaTables); 
    while(!pRstSchemaTable- >EndOfFile){ 
    _bstr_t   tableName=pRstSchemaTable- >Fields- >GetItem( "TABLE_NAME ")- >Value;//读取表名 
    _bstr_t   tableType=pRstSchemaTable- >Fields- >GetItem( "TABLE_TYPE ")- >Value;//读出来的不只是表而已^_^ 
    if(!lstrcmp(str_type,_T( "TABLE "))//将表名都读出来,但是其中包含系统表哦,自己过滤吧,因为不知道楼主用的是哪个数据库
      

  3.   

    我使用的是sql,如何获得用户表呢,获得后,怎么将这些表名添加到ListBox控件中呢
      

  4.   

    读每个数据库中的   SYSOBJECTS   表。 详细的信息看联机帮助。
      

  5.   

    我使用的是SQL Server2000的数据库,我知道使用语句select name from sysobjects where xtype='U'可以得到用户表,但是怎么用在程序中,得到表的名称后怎么添加到ListBox中???望高手指教!
      

  6.   

    SQL语句你已经知道,
    那么关于VC++ 使用数据库类的相关操作知道吗?还是listbox控件不会使用呢?
      

  7.   

    http://www.vckbase.com/document/viewdoc/?id=496
      

  8.   

    我不太懂数据库类的相关操作,不知道怎么在程序中使用我的SQL语句
      

  9.   

    CString strStorePro="test";
    CADORecordset* pRs;
    pRs->Open(strStorePro,CADORecordset.openStoredProc);
    我的test存储过程是这样定义的:select name from sysobjects where xtype='U',即获得用户表,接下来我如何做才能在程序里的ListBox中显示那个存储过程获得的用户表呢?
      

  10.   

    然后
    while(!pRs->adpeof){
    cstring s=(char*)(_bstr_t)pRs->getcollect("name")
    list.addstring(s)
    pRs->movenext()
    }
    大概是这样
      

  11.   

    没什么,只要
    m_pRecordset->Open("select   name   from   sysobjects   where   xtype='U'",_variant_t(m_pConn,true),adOpenStatic,adLockOptimistic,adCmdText);