打开一个数据库后,怎么显示里面所有的数据表
就是将数据库里的数据表显示在一个Listbox 里.

解决方案 »

  1.   

    rs=pConn->OpenSchema(adSchemaTables);
    while(!rs->adoEOF)
    {
    m_tblList.AddString((char*)(_bstr_t)rs->Fields->Item[L"TABLE_NAME"]->Value);
    rs->MoveNext();
    }
    rs=NULL;
      

  2.   

    一条条的向里面加就行了 m_Adodb = new CADODataBase();
       m_set = new CADORecordset(m_Adodb);
       CString str;
       str = "Select * from CustomerTable where ID = 00001";
       if(!m_set->Open(LPCTSTR(str),1))
       {
       return;
       }
       CString str1,str2;
       m_set->MoveFirst();
       while(!m_set->IsEOF())
       {
            str1 = "ID";
    m_set->GetFieldValue(str1,str2);
    int nCount = m_AdoCtrl.GetItemCount();
    m_AdoCtrl.InsertItem(nCount,str2);
    str1 = "Name";
    m_set->GetFieldValue(str1,str2);
    m_AdoCtrl.SetItemText(nCount,1,str2);
    str1 = "Address";
    m_set->GetFieldValue(str1,str2);
    m_AdoCtrl.SetItemText(nCount,2,str2);
    m_set->MoveNext();
       }
      

  3.   

    我想把用户的数据表都显示出来,这段怎么不对啊?无法显示。
    m_record=m_db->OpenSchema(adSchemaTables);
    while(!m_record->adoEOF)
    {
    if((char*)(_bstr_t)m_record->Fields->Item[L"TABLE_TYPE"]->Value == "TABLE")
    m_List.AddString((char*)(_bstr_t)m_record->Fields->Item[L"TABLE_NAME"]->Value);
    m_record->MoveNext();
    }
    m_record=NULL;
      

  4.   

    try
    {
    m_adoRecordSet=m_adoConnection.OpenSchema(adSchemaTables);
    if(!m_adoRecordSet.IsBOF())
    {
    while(!m_adoRecordSet.IsEOF())
    {
    m_adoRecordSet.GetCollect("TABLE_TYPE",strValue);
    if(strValue=="TABLE")
    {
    m_adoRecordSet.GetCollect("TABLE_NAME",strValue);
    if(strValue.Find("~")<0)
    m_TableList.AddString(strValue);
    }

    m_adoRecordSet.MoveNext();
    }
    }

    }
    catch (...) 
    {
    }
      

  5.   

    我使用的是VC知识库中的ADO类。http://www.vckbase.com/code/database/ado/My-Ado.zip
      

  6.   

    int i=0,j;//其中i为表项,j为列项,m_basicset为Listbox 控件
    while(!m_basicset.IsEOF())
    {
    int temp=0;
    m_basicset.GetFieldValue(temp,varValue);
    sprintf(buf,"%d",varValue.m_lVal); m_basic.InsertItem(i,buf);
    m_basicset.GetFieldValue(1,varValue);
    m_basic.SetItemText(i,1,varValue.m_pstring->GetBuffer(1));
    m_basicset.GetFieldValue(2,varValue);
                       ......................
                       m_basic.SetItemText(i,1,varValue.m_pstring->GetBuffer(1));
    m_basicset.GetFieldValue(j,varValue);
      

  7.   

    yeah. just like the other friends said, using MoveNext() function read the records one by one, and then get the data from the records. so then you can list them to your list.