SQL Server数据库在VC环境下的链接使用
这里是使用的VC++6.0环境,主要分为一下几步:
一:随便在对话框里拉一个List Contrl 然后初始化,引入第三方类 ado.cpp 和ado.h,这里要注意的是库的引入,一
般程序在ado.h里生成的是
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" rename("EOF", "EndOfFile")
#import "C:\Program Files\Common Files\System\ado\MSJRO.DLL" no_namespace
但可能会有问题,这个文件明明存在,可是编译过不了说没有
,比较郁闷,我的解决办法是,自己在程序的目录
下建个文件夹,然后放入这两个路径,然后在引入(有时候能成功,有时候也不行,多试几次)
二:由于整个程序都要访问所连接的数据库,故我们在*APP.h类里定义数据库链接对象:
static CADODatabase m_DB; //别忘了引入头文件#include "*/ado.h"
在*APP.cpp的初始化里加入:
//连接数据库
CString strConnect = _T("Provider=sqloledb;Data Source=PC201404210742\\SQLSERVER;"
"Initial Catalog=EmpDBs;"
"User Id=sa;Password=dong123;");
if (!m_DB.Open((LPCTSTR)strConnect))
{
return FALSE;
}
三:写一个收集信息的函数GetEmployeeInfo();
void CMFC0524Dlg::GetEmployeeInfo()
{
CString strSql = _T("select * from tbEmployee order by Eid");
//记录集
CADORecordset Rs(&CMFC0524App::m_DB); //由于每个类都要访问m_DB,故定义在CMFC0524APP类里了
//打开记录集
if(Rs.Open((LPCTSTR)strSql))
{
CString strField;
int nRow = 0;
while(!Rs.IsEOF()) //一条一条的读取sql语句执行的结果(记录集)
{
Rs.GetFieldValue(_T("Eid"),strField);
m_ltcInfo.InsertItem(nRow,strField);
Rs.GetFieldValue(_T("Ename"),strField);
m_ltcInfo.SetItemText(nRow,1,strField);
Rs.GetFieldValue(_T("Gender"),strField);
m_ltcInfo.SetItemText(nRow,2,strField);
Rs.GetFieldValue(_T("Age"),strField);
m_ltcInfo.SetItemText(nRow,3,strField);
Rs.GetFieldValue(_T("Did"),strField);
m_ltcInfo.SetItemText(nRow,4,strField);
Rs.GetFieldValue(_T("Wid"),strField);
m_ltcInfo.SetItemText(nRow,5,strField);
//移动记录指针
Rs.MoveNext();
nRow++;
}
//关闭记录集
Rs.Close();
}
}