高手教教我啊.
我只是想用list box控件显示出所有的数据库表名....希望能提供源码...
用ADO实现

解决方案 »

  1.   

    得到数据库表名后用CListBox::AddString
      

  2.   

    我知道SQL得到数据库表名是select Name from sysobjects where xtype='u' and status>=0
    打开数据集
    _bstr_t mStrSQL; mStrSQL = "select Name from sysobjects where xtype='u' and status>=0";
    m_pRecordset->Open(mStrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,
    adLockOptimistic,adCmdText);帮我看看代码应该怎样改啊....谢谢
    try
    {
    m_pRecordset->MoveFirst(); 
    while(m_pRecordset->adoEOF==VARIANT_FALSE) 
    {
    //Retrieve column's value: 
    CString tbName=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem
    (_variant_t("Name"))->Value);

    //Do something what you want to do:
            m_dbtb.AddString(tbName);
    UpdateData(false);
    m_pRecordset->MoveNext(); 
    }
    }//try
    catch (_com_error &e)
    {
    CString str=(char*)e.Description();
    AfxMessageBox(str);
    }
      

  3.   

    http://www.vckbase.com/document/viewdoc/?id=1098你需要的例子
    去看看吧
      

  4.   

    你最好把查询SQL的功能封装起来,代码封装起来比较规整,我给你段例子,是我没事写着玩的,这是初始化的一个函数:
    void CCountInfoView::InitType(CAdoDB& db)
    {
    m_cbxType.ResetContent(); CString strSQL = "";
    try
    {
    strSQL = "SELECT ID, TYPE FROM TYPE ORDER BY ID ASC"; if(db.ExeSQLRs(_T(strSQL)) < 0)
    {
    CMessage::ShowErrorMsg(_T("初始化类型数据失败!\r\n"
      "函数名称:InitType()\r\n"
      "出错原因:\r\n"
      "未知错误!")); 
    return;
    }

    m_cbxType.AddString("无类型"); while(!db.IsEOF())
    {
    int nID = db.GetCollectInt(0);
    CString strType = db.GetCollectStr(1);

    m_cbxType.AddString(strType); db.MoveNext();
    }
    db.CloseRs(); } catch(_com_error e)
    {
    CMessage::ShowErrorMsg(_T("初始化类型数据出错!\r\n"
      "函数名称:InitType()\r\n"
      "出错原因:\r\n"
      "%s"),
    CGlobal::PrintComError(e));
    }
    return;
    }
    封装ExeSQLRs的函数是:
    int CAdoDB::ExeSQLRs(CString strSQL)
    {
    try
    {
    _variant_t var;
    m_pRs = m_pCon->Execute(_bstr_t(strSQL), &var, adCmdText); return 0;
    }
    catch(_com_error e)
    {
    throw e;
    } return -1;
    }