vs2012 MFC連線及操作access(2007)資料庫(ADO)
最近想寫個圖書管理軟體,用到了資料庫,但是由於是小白,弄了好半天才把資料庫搞明白。雖然網上有一些教程,但大多都是長長的文字敘述,所以想寫一個圖文版的連線教程並把這兩天的經驗記錄下來。
1、首先開啟access(本人用的是2007版本),新建一個空白的資料庫,並填入資訊,如下圖:
關閉此表,並重命名(例如test)。
2、開啟vs2012,新建一個mfc工程名為managetest,在視覺化介面中新增兩個Edit control 控制元件,用來顯示資料庫中的資訊,新增一個button按鈕,用來觸發。如下圖。
3、在標頭檔案stdafx.h中新增下面語句來支援ADO的元件型別庫
#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF", "adoEOF1")//adoEOF可以改成別的,不同的專案裡面最好改成不一樣的。
ps:如果stdafx.h加載出錯,解決辦法 http://blog.csdn.net/lphbtm/article/details/50730807
4、切換到managetest.cpp中的BOOL CBookManageApp::InitInstance()函式中新增一下程式碼,用以初始化COM。
if(!AfxOleInit())
{
AfxMessageBox(_T("OLE初始化出錯!"));
return FALSE;
}
5、切換到managetestDlg.cpp,在步驟2中的按鈕控制元件的回撥函式中新增一下程式碼。
_ConnectionPtr m_pConnection;//ConnectionPtr指標用於開啟、關閉一個庫連線或用它的
_RecordsetPtr m_pRecordset;//_RecordsetPtr智慧指標,可以用來開啟庫內資料表,並可以對錶內的記錄、欄位等進行各種操作
CString csSQLstr;
CString bookid;
CString bookname;
csSQLstr ="SELECT * FROM test";//test 為步驟一種資料庫新建的表名。
try
{
m_pConnection.CreateInstance(__uuidof(Connection));//建立ADO連線
m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=Database1.accdb","","",adModeUnknown);
//將資料庫檔案放在與程式碼檔案相同的目錄下,data source的賦值即可寫成上面語句中的形式,
//具體provider 與 data source的值可參考http://blog.csdn.net/u012388338/article/details/39393105
}
catch(_com_error e)
{
AfxMessageBox(_T("資料庫連線失敗,確認資料庫db.mdb是否在當前路徑下!"));
return;
}
m_pRecordset.CreateInstance(__uuidof(Recordset));
try
{
m_pRecordset->Open((_bstr_t)csSQLstr,m_pConnection.GetInterfacePtr(), adOpenDynamic,adLockOptimistic,adCmdText);
//開啟一個記錄集(test表),通過這個記錄我們可以進行查詢,插入,刪除等操作。
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
bookid=m_pRecordset->GetCollect("BookID");
//得到test表中BookID的第一個值,這是由於開啟資料集後,指標在這個記錄集的開頭,
//可以通過movefist,movelast,movenext操作移動指標位置,getcollect可以讀取記錄集中的資訊。
bookname = m_pRecordset->GetCollect("BookName");
SetDlgItemText(IDC_BookID,bookid); //將得到的資訊顯示在文字框中
SetDlgItemText(IDC_BookName,bookname);
m_pRecordset->Close();//關閉記錄集
m_pRecordset = NULL;
m_pConnection->Close();//斷開資料庫連線
m_pConnection= NULL;
6、執行,點選顯示,得到結果
7、說明
本文只是簡單介紹了下mfc與access的連線及簡單操作。對於其中有些東西的解釋不是很完整,也沒有能力解釋,望見諒。
參考:
除文中提到的兩篇外,
http://blog.csdn.net/chaoguodong/article/details/7663877 mfc連線access資料庫 ,介紹了ADO的概念,新增庫的說明及ADO的操作程式碼
http://blog.sina.com.cn/s/blog_6da8e3ef0101fzyo.html ADO操作ACCESS資料庫的一些心得
http://www.csdn123.com/html/itweb/20130826/81725_81723_81707.htm MFC利用ADO連線ACCESS資料庫及其操作資料庫的方法,展示了插入,刪除等操作的詳細程式碼