VC/MFC中的ACCESS資料庫訪問實現

來源:互聯網
上載者:User

轉自: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 ...

雖然有提示,但是資料庫的操作是成功的。就這個問題查遍了網路,沒有人能給出解決方案,同樣,我並不比他們強。

第一種方案到此結束。

 

      

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.