經過各類查找,實踐寫代碼。成功經過ADO鏈接ACCESS。
數據庫
stdafx.h頭文件先定義ide
#import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF")ui
*初始化(名字沒有dlg初始化窗口那裏),必定不要忘記了。spa
AfxOleInit();指針
頭文件定義了兩個指針get
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;it
接下來就是 m_pConnection 鏈接io
try
{
// 打開本地Access庫
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=usedat.mdb;Jet OLEDB:Database Password=你ACCESS的密碼","","",adModeUnknown);import
}
catch(_com_error e)
{
AfxMessageBox("數據庫鏈接失敗,確認數據庫是否在當前路徑下!");
}百度
接下來就是 m_pRecordset 取數據集
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open("select * from users",m_pConnection.GetInterfacePtr(),
// 獲取庫接庫的IDispatch指針
adOpenDynamic,
adLockOptimistic,
adCmdText);
if(!m_pRecordset->BOF)
{
m_pRecordset->MoveFirst();
}
else
{
AfxMessageBox("表內數據爲空");
return;
}
while(!m_pRecordset->adoEOF)
{
if(tem.vt!=VT_NULL)
{
tem=m_pRecordset->GetCollect("use");
id=(LPCSTR)_bstr_t(tem);//_variant_t轉換CString
}
if(tem1.vt!=VT_NULL){
tem1=m_pRecordset->GetCollect("pwd");
pw=(LPCSTR)_bstr_t(tem1);
}
m_pRecordset->MoveNext();
if(m_id==id&&m_pwd==pw)
{
flag=1;
break;
}
m_pRecordset->Close();
m_pRecordset = NULL;
if(flag!=1)
{
AfxMessageBox("賬號或密碼錯誤");
}
else
{
CLoginDlg::EndDialog(0);
Cwel wel;
wel.DoModal();
}
程序圖標
界面
只是程序下載百度網盤下載地址