MFC连接数据其实很简单,网上有许多相关资料,其实重点是连接字符串,其他的按照步骤操作很容易配置。
1.stdafx.h文件变更
在stdafx.h中添加如下语句
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2.声明相关指针
数据库相关指针
_ConnectionPtr m_pConnection;
_CommandPtr m_pCommand;
_RecordsetPtr m_pRecordSet;
3.数据库连接
下面是以access数据库连接作参考,SQL和Oracle等其他数据库连接字符串,请查找相关资料。
try { m_pConnection.CreateInstance(__uuidof(Connection)); hr = m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Database1.accdb","","",0); catch (_com_error* e) { AfxMessageBox(e->ErrorMessage()); }
4.数据库命令执行BOOL blRet = FALSE; HRESULT hr = E_FAIL; hr = m_pRecordSet.CreateInstance("ADODB.Recordset"); _variant_t RecordsAffected; try { m_pRecordSet = m_pConnection->Execute(m_pCmd,&RecordsAffected,adCmdText);// m_pCmd数据库语句 if (m_pRecordSet->BOF) { AfxMesseageBox(_T("Empty!)); } else { _variant_t varPartsCode; while (!m_pRecordSet->adoEOF) { varPartsCode = m_pRecordSet->GetCollect("Name"); if (varPartsCode.vt == VT_BSTR) { TString str = varPartsCode.bstrVal; m_lstPartCode.push_back(str); } m_pRecordSet->MoveNext(); } } } catch (_com_error* e) { AfxMessageBox(e->ErrorMessage()); }