• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Visual C++用ADO操作Access數(shù)據(jù)庫的方法探討

    2013-12-30 08:57:04萬為清
    商品與質(zhì)量·消費研究 2013年10期
    關(guān)鍵詞:管理程序數(shù)據(jù)表控件

    萬為清

    一、引言

    數(shù)據(jù)庫在日常生活生產(chǎn)中大量使用,也出現(xiàn)了各種數(shù)據(jù)庫管理系統(tǒng)如ACCESS、SQL SERVER、ORACLE等。但這些數(shù)據(jù)管理系統(tǒng)不能開發(fā)出適合人們應(yīng)用的Windows應(yīng)用程序。而VC能將關(guān)系數(shù)據(jù)庫和OOP(面向?qū)ο螅┚幊谭椒ńY(jié)合起來,做出具有強大的數(shù)據(jù)管理能力和靈活適用的應(yīng)用程序。VC操縱數(shù)據(jù)庫的常用方法有ODBC、DAO、ADO、OLE DB等幾種方法,其中最適合教學(xué)和工程應(yīng)用軟件開發(fā)的是ADO的方法。ADO技術(shù)是基于OLE DB的訪問技術(shù),它繼承了OLE DB的技術(shù)優(yōu)點,并且將OLE DB的接口作了封裝,定義了ADO對象,使程序開發(fā)得到簡化?;贏DO技術(shù)的應(yīng)用程序可以通過一致的接口來訪問各種各樣的數(shù)據(jù),不需要關(guān)心數(shù)據(jù)存放位置,也不需要進行數(shù)據(jù)轉(zhuǎn)移、復(fù)制、轉(zhuǎn)換,在實現(xiàn)分布式數(shù)據(jù)庫應(yīng)用上有很大的優(yōu)勢。下面通過一個簡易學(xué)生管理程序來敘述VC用ADO方式操縱Access數(shù)據(jù)庫的方法,和開發(fā)數(shù)據(jù)庫應(yīng)用程序的基本過程。

    二、程序?qū)崿F(xiàn)代碼及步驟

    1、創(chuàng)建ACCESS數(shù)據(jù)庫

    在Access2000中創(chuàng)建一個數(shù)據(jù)庫db1,并創(chuàng)建一個數(shù)據(jù)表stu,添加2個字段(xh,文本型,字段大小10)(xm,文本型,字段大小10)。輸入幾條記錄用于讀寫測試。

    2、創(chuàng)建基于對話框的應(yīng)用程序

    用APP Wizard創(chuàng)建一個基于對話框的應(yīng)用程序Adodb2010。

    3、引入ADO函數(shù)庫

    在Stdafx.h結(jié)尾處添加引入msado15.dll的語句。

    #import " msado15.dll msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")

    4、在窗體上放置控件

    在對話框上放置相應(yīng)的各控件。

    5、連接數(shù)據(jù)庫和數(shù)據(jù)表

    在初始化函數(shù)中連接數(shù)據(jù)庫和數(shù)據(jù)表。

    代碼如下:

    CString strname;

    strname.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=db1.mdb;","","",adModeUnknown);

    AfxOleInit();

    AfxEnableControlContainer();

    m_pConnection.CreateInstance("ADODB.Connection");

    _bstr_t strConnect=strname;

    m_pConnection->Open(strConnect,"","",adModeUnknown);

    m_pRecordset.CreateInstance("ADODB.Recordset");

    CString sql="SELECT * FROM stu";

    m_pRecordset->Open((_variant_t)sql,m_pConnection.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);//

    6、各個按鈕的功能函數(shù)

    1)

    void CAdodb2010Dlg::OnButton1()

    {

    m_pRecordset->MoveNext();

    if(m_pRecordset->adoEOF)

    m_pRecordset->MoveFirst();

    CString m;

    m=(char *)(_bstr_t)m_pRecordset->GetCollect("xh");

    GetDlgItem(IDC_EDIT1)->SetWindowText(m);

    m=(char *)(_bstr_t)m_pRecordset->GetCollect("xm");

    GetDlgItem(IDC_EDIT2)->SetWindowText(m);

    }

    2)

    void CAdodb2010Dlg::OnButton2()

    {

    //點擊“上一條記錄”顯示上一條記錄

    m_pRecordset->MovePrevious();

    if(m_pRecordset->adoBOF)

    m_pRecordset->MoveLast();

    }

    3)

    void CAdodb2010Dlg::OnButton3()

    {

    sql.Format("select * from stu where xh='%s'",s1);

    m_pRecordset->Open(_variant_t(sql),_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);

    var = m_pRecordset->GetCollect("xm");

    m=(char *)(_bstr_t)m_pRecordset->GetCollect("xm");

    GetDlgItem(IDC_EDIT2)->SetWindowText(m);

    }

    4)

    void CAdodb2010Dlg::OnButton4()

    {//點擊“插入”,將當(dāng)前編輯框中的學(xué)號和姓名插入到stu數(shù)據(jù)表中

    _RecordsetPtr m_pRecordset;

    m_pRecordset.CreateInstance("ADODB.Recordset");

    CString sql,m1,m2;

    GetDlgItem(IDC_EDIT1)->GetWindowText(m1);

    GetDlgItem(IDC_EDIT2)->GetWindowText(m2);

    sql.Format("Insert into stu (xh,xm) values ('%s','%s')",m1,m2);

    _variant_t RecordsAffected;

    m_pConnection->Execute((_bstr_t)sql,&RecordsAffected;,adCmdText);

    }

    5)

    void CAdodb2010Dlg::OnButton5()

    {

    sql.Format("delete from stu where xh='%s'",m1);

    _variant_t RecordsAffected;

    m_pConnection->Execute((_bstr_t)sql,&RecordsAffected;,adCmdText);

    }

    7、最后點擊VC編譯器菜單中的Build下的Rebuild All,編譯并生成應(yīng)用程序,得到我們前面看到的效果圖的應(yīng)用程序。

    三、結(jié)束語

    本文通過一個簡易學(xué)生管理程序介紹了VC++6.0用ADO技術(shù)操縱Access數(shù)據(jù)庫具體方法,對數(shù)據(jù)庫和數(shù)據(jù)表進行連接、查詢、插入、刪除、修改等操作。在實際工程軟件開發(fā)項目中對以上應(yīng)用程序略加修改,加上ListView表格控件就可以生成功能更完善的學(xué)生管理軟件。也可以將連接ACCESS數(shù)據(jù)庫的方法修改一下,連接SQL SERVER數(shù)據(jù)庫,做成網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用軟件。目前該方法已經(jīng)在省電腦大賽訓(xùn)練教學(xué)和工程軟件開發(fā)得到大量使用,取得了很好的效果。

    參考文獻:

    [1]鄭阿奇,Visual C++教程,機械工業(yè)出版社,2004

    [2]黃慶生,精通VISUAL C++ 6.0,人民郵電出版社 ,1999年6月

    [3]宋耀文,ADO開發(fā)技術(shù)在Visual C++中的實現(xiàn),哈爾濱師范大學(xué)自然科學(xué)學(xué)報2003.5

    猜你喜歡
    管理程序數(shù)據(jù)表控件
    軍事保密管理程序法治化及其對軍民協(xié)同創(chuàng)新發(fā)展的促進研究
    湖北省新冠肺炎疫情數(shù)據(jù)表
    黨員生活(2020年2期)2020-04-17 09:56:30
    基于列控工程數(shù)據(jù)表建立線路拓撲關(guān)系的研究
    關(guān)于.net控件數(shù)組的探討
    軟件(2018年7期)2018-08-13 09:44:42
    關(guān)于EPC總承包項目設(shè)計管理程序文件的研究
    圖表
    FMC移動性管理程序
    河南科技(2014年24期)2014-02-27 14:19:26
    基于VSL的動態(tài)數(shù)據(jù)表應(yīng)用研究
    河南科技(2014年24期)2014-02-27 14:19:25
    就這樣玩會VBA中常見的自定義控件
    電腦迷(2012年24期)2012-04-29 00:44:03
    寧德核電管理體系建設(shè)與優(yōu)化
    中國核電(2011年3期)2011-11-20 01:46:10
    乃东县| 英山县| 伽师县| 滨海县| 长兴县| 泰来县| 无为县| 定远县| 保靖县| 六盘水市| 黔西| 宁都县| 富阳市| 龙川县| 天门市| 梧州市| 怀仁县| 宁津县| 黑龙江省| 鹿邑县| 建阳市| 三原县| 伊通| 新安县| 寿光市| 吉林市| 施甸县| 丰台区| 石嘴山市| 寿阳县| 洞头县| 共和县| 镇雄县| 龙山县| 缙云县| 惠东县| 吴旗县| 抚远县| 潜山县| 建昌县| 横峰县|