轉自:http://blog.csdn.net/mrdone/article/details/4868741
前些天弄一個訪問ACCESS資料庫的小東西,費了些力氣才弄好。
雖然還有些不盡人意,但是終究還是可以用了,
在這裡分享一下自己的實現方法和經驗。
裡面的東西網上都有,但是,這裡的是最全的。
VC/MFC訪問ACCESS資料庫
方法1:
1 建立一個基於對話方塊的應用程式。
放入兩個ActiveX 控制項 Microsoft ADO Data Control,version 6.0 ... 和 Microsoft DataGrid Control,Version 6.0 如果沒有兩個空間的話,請安裝OFFICE組件。
2 為控制項設定屬性。
1) 為ADO Data Control 設定屬性:Control -> Use Connection String -> Build
在彈出的對話方塊中選擇 Microsoft Jet 4.0 OLE DB Provider -> 下一步 -> 在"選擇或輸入資料庫名稱"處,選擇所建立的資料庫檔案,例如:d:/test_db/testdb.mdb。密碼處預設為空白,如果使用者表有密碼的話,輸入密碼,並選中"允許儲存密碼" -> 單擊"測試連接" 如彈出"測試連接成功" 表示資料檔案已經可已使用。直接確定,回到為對話方塊資源編輯介面。
為這一控制項的:RecordSource 選項設定屬性如下:
Command Type 選擇 1 -adCmdText
Command Text(SQL) 中 輸入SQL語句 : select * from mydb;
ADO Data Control 控制項的屬性就設定完成了。關閉屬性設定介面。
2) 為DataGrid Control設定屬性。
DataSource 列表中選擇:IDC_ADODC1
關閉屬性設定介面。
編譯,運行。如果資料庫中有資料的話,就會在DataGrid中顯示出來了。
想進行其他的資料庫操作的話,如下例:
接著上面的程式步驟,
為ADO Data Control 添加一個變數:m_adoDC;
為Data Grid 添加一個變數:m_adoDG;
一個按鈕,雙擊為按鈕增加函數。在函數中增加下面的代碼:
CString strTem = "select * from mydb where SUserName <> '張三'";
//VC 6.0
m_adoDC.SetRecordResource(strTem);
m_adoDC.Refresh();
//VS 2005/VS 2008
m_adoDC.put_RecordSource(strTem);
m_adoDC.Refresh();
編譯運行,效果就出來了。
PS:這種方式下,查詢的效果很好,但是,進行INSERT , UPDATE , DELETE 操作的時候會出現一些錯誤提示:
//VC 6.0 中
對象已關閉,無法進行操作。
//VS 中
Windows has triggered a breakpoint in ...
雖然有提示,但是資料庫的操作是成功的。就這個問題查遍了網路,沒有人能給出解決方案,同樣,我並不比他們強。
第一種方案到此結束。
轉自:http://blog.csdn.net/mrdone/article/details/4868741
前些天弄一個訪問ACCESS資料庫的小東西,費了些力氣才弄好。
雖然還有些不盡人意,但是終究還是可以用了,
在這裡分享一下自己的實現方法和經驗。
裡面的東西網上都有,但是,這裡的是最全的。
VC/MFC訪問ACCESS資料庫
方法1:
1 建立一個基於對話方塊的應用程式。
放入兩個ActiveX 控制項 Microsoft ADO Data Control,version 6.0 ... 和 Microsoft DataGrid Control,Version 6.0 如果沒有兩個空間的話,請安裝OFFICE組件。
2 為控制項設定屬性。
1) 為ADO Data Control 設定屬性:Control -> Use Connection String -> Build
在彈出的對話方塊中選擇 Microsoft Jet 4.0 OLE DB Provider -> 下一步 -> 在"選擇或輸入資料庫名稱"處,選擇所建立的資料庫檔案,例如:d:/test_db/testdb.mdb。密碼處預設為空白,如果使用者表有密碼的話,輸入密碼,並選中"允許儲存密碼" -> 單擊"測試連接" 如彈出"測試連接成功" 表示資料檔案已經可已使用。直接確定,回到為對話方塊資源編輯介面。
為這一控制項的:RecordSource 選項設定屬性如下:
Command Type 選擇 1 -adCmdText
Command Text(SQL) 中 輸入SQL語句 : select * from mydb;
ADO Data Control 控制項的屬性就設定完成了。關閉屬性設定介面。
2) 為DataGrid Control設定屬性。
DataSource 列表中選擇:IDC_ADODC1
關閉屬性設定介面。
編譯,運行。如果資料庫中有資料的話,就會在DataGrid中顯示出來了。
想進行其他的資料庫操作的話,如下例:
接著上面的程式步驟,
為ADO Data Control 添加一個變數:m_adoDC;
為Data Grid 添加一個變數:m_adoDG;
一個按鈕,雙擊為按鈕增加函數。在函數中增加下面的代碼:
CString strTem = "select * from mydb where SUserName <> '張三'";
//VC 6.0
m_adoDC.SetRecordResource(strTem);
m_adoDC.Refresh();
//VS 2005/VS 2008
m_adoDC.put_RecordSource(strTem);
m_adoDC.Refresh();
編譯運行,效果就出來了。
PS:這種方式下,查詢的效果很好,但是,進行INSERT , UPDATE , DELETE 操作的時候會出現一些錯誤提示:
//VC 6.0 中
對象已關閉,無法進行操作。
//VS 中
Windows has triggered a breakpoint in ...
雖然有提示,但是資料庫的操作是成功的。就這個問題查遍了網路,沒有人能給出解決方案,同樣,我並不比他們強。
第一種方案到此結束。