第一步
导入ADO连接的系统文件,
#import “C:\Program Files\Common Files\System\ado\msado15.dll” no_namespace rename(“EOF”,“adoEOF”)
用的是绝对路径,放在stdafx.h里面,不能放在太上面,会爆一个错误,还需要去删其他的,如
但是放到下面来,就可以了,
至于还可以不用绝对路径,可以用相对路径,把msado15.dll复制到根目录下面,但是会报错,我始终找不到解决办法,网上找了一堆都不行,这种方法更好,但是解决不了。
第二步:直接建立连接
try
{
CoInitialize(NULL);
m_pConnection = _ConnectionPtr(__uuidof(Connection));
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database1.mdb","","",adModeUnknown);
//注意,这个地方不能用新版本的,比如后缀名为accdb的时候,会报错
CoUninitialize();
}
catch (_com_error e)
{
SetDlgItemText(IDC_EDIT_RECV,TEXT("连接失败"));
}
第三步:查询数据
_RecordsetPtr Ptr = NULL;
Ptr.CreateInstance(__uuidof(Recordset));
CString sql = _T("SELECT* FROM information where id=3");
_bstr_t sqlToExecute = sql;//可直接转换!
Ptr = m_pConnection->Execute(sqlToExecute,NULL,adCmdText);
//第三个应该是他类里面自己的参数把,反正改了就会报错
_variant_t roader;
roader = Ptr->GetCollect(_T("性别")); //这个参数是字段名,如果表中不存在参数则会报错
CString str=(LPCTSTR)(_bstr_t)roader;
SetDlgItemText(IDC_EDIT_RECV,str);
m_pConnection->Close();