实现功能:
有一个组合框,需要在程序初始化时从数据库的一张表中读取数据项作为它的选项
准备条件:
组合框ID为IDC_COLLEGE,关联变量m_college,数据表表名为m_collegename,表中只有一个字段name,类型为文本
PS:我使用ADO方法连接ACCESS数据库,已经成功连接,只是这个功能的代码没有调试成功,下面我会贴出代码,麻烦各路高手指点一二

解决方案 »

  1.   

                 try
    {
    m_AdoConn.OnInitADOConn();//连接数据库
    _bstr_t sql="select * from m_collegename";//获取多少个学院
                            int i=0;
    m_pRs=m_AdoConn.GetRecordSet(sql);//获取记录集
                           i=(int)(long)m_pRs->GetFields()->GetItem((long)0)->Value;//获取有多少个记录
    for(int j=0;j<i;j++)
    {
    CString str=(TCHAR*)(_bstr_t)m_pRs->GetFields()-  >GetItem((long)0)->Value;//获取表中字段的值,给str
    m_pRs->MoveNext();//指针下移
    m_college.AddString(str);//把str添加到m_college组合框中
    }
    m_AdoConn.ExitConn();//断开连接
    }
    catch(...)
    {
    AfxMessageBox("操作失败");
    return 1;
    }
      

  2.   

    i=(int)(long)m_pRs->GetFields()->GetItem((long)0)->Value;
    上面这句的返回值类型不应该是int吧,这句的意思也不是“获取有多少个记录”,而是“读取当前记录的第1个字段的值”,lz这样写试一下:
    _variant_t i;
    varValue=m_pRS->GetFields()->GetItem((long)0)->Value;