实现功能:
有一个组合框,需要在程序初始化时从数据库的一张表中读取数据项作为它的选项
准备条件:
组合框ID为IDC_COLLEGE,关联变量m_college,数据表表名为m_collegename,表中只有一个字段name,类型为文本
PS:我使用ADO方法连接ACCESS数据库,已经成功连接,只是这个功能的代码没有调试成功,下面我会贴出代码,麻烦各路高手指点一二
有一个组合框,需要在程序初始化时从数据库的一张表中读取数据项作为它的选项
准备条件:
组合框ID为IDC_COLLEGE,关联变量m_college,数据表表名为m_collegename,表中只有一个字段name,类型为文本
PS:我使用ADO方法连接ACCESS数据库,已经成功连接,只是这个功能的代码没有调试成功,下面我会贴出代码,麻烦各路高手指点一二
{
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;
}
上面这句的返回值类型不应该是int吧,这句的意思也不是“获取有多少个记录”,而是“读取当前记录的第1个字段的值”,lz这样写试一下:
_variant_t i;
varValue=m_pRS->GetFields()->GetItem((long)0)->Value;