日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库编程入门培训(二)

發(fā)布時(shí)間:2025/7/14 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库编程入门培训(二) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

??????本文為數(shù)據(jù)庫編程入門培訓(xùn)的第二講,主要講述一下數(shù)據(jù)庫編程具體怎么實(shí)現(xiàn)。示例代碼在本文后面的附件中可以下載。

??????如上篇文章所描述的那樣,由于Microsoft Access數(shù)據(jù)庫比較直觀,適合初學(xué)者入門學(xué)習(xí),故我在此依然以Access為例,示范如何對(duì)數(shù)據(jù)庫進(jìn)行編程練習(xí); 而且,我使用的編程示例是基于Microsoft公司提供的Dao技術(shù),雖然該技術(shù)已經(jīng)早已過時(shí),但是由于它的編程簡(jiǎn)單、明晰,很適合初學(xué)者,故依然在此使用Dao技術(shù)做數(shù)據(jù)庫編程的示范,希望數(shù)據(jù)庫編程高手們能夠理解。

???????回顧上篇文章描述的,我們對(duì)數(shù)據(jù)庫的操作主要分為以下幾個(gè)方面:

????????? 1. 初始化/逆初始化數(shù)據(jù)庫引擎 (操作數(shù)據(jù)庫引擎)
??????????2. 創(chuàng)建/打開/關(guān)閉數(shù)據(jù)庫 (操作數(shù)據(jù)庫文件)
??????????3. 查找/打開/新增/刪除一個(gè)數(shù)據(jù)表 (操作數(shù)據(jù)庫的表)
????????? 4. 為一個(gè)新數(shù)據(jù)表添加字段,刪除字段,修改字段屬性 (操作數(shù)據(jù)庫的字段)
?????? ?? 5. 添加/刪除/修改一條記錄 (操作記錄集)
????????? 6. 根據(jù)條件檢索出滿足條件的記錄集 (查詢和檢索)
????????? 7. 其他:移動(dòng)到下一條記錄,獲取表的總個(gè)數(shù),獲取記錄的總數(shù)……

???????因此,我將通過示例代碼來實(shí)現(xiàn)上述的某些基本功能,具體的各個(gè)類各個(gè)函數(shù)的用法,大家可以自己查看MSDN,里面都有非常詳細(xì)的說明。

  • // ?
  • ///?COPYRIGHT?NOTICE ?
  • ///?Copyright?(c)?2009,?華中科技大學(xué)tickTick?Group??(版權(quán)聲明) ?
  • ///?All?rights?reserved. ?
  • ///? ?
  • ///?@file????testDB.cpp?? ?
  • ///?@brief???數(shù)據(jù)庫測(cè)試文件 ?
  • /// ?
  • ///?本文件示范了Dao數(shù)據(jù)庫訪問方法 ?
  • /// ?
  • ///?@version?1.0??? ?
  • ///?@author??盧俊? ?
  • ///?@date????2010/05/10 ?
  • /// ?
  • /// ?
  • ///??修訂說明: ?
  • // ?
  • ?
  • //?需要使用Dao技術(shù)訪問數(shù)據(jù)庫,必須包含afxdao.h ?
  • #include?<afxdao.h> ?
  • #include?<iostream> ?
  • ?
  • //?因?yàn)镈AO技術(shù)現(xiàn)在微軟已經(jīng)不在做技術(shù)支持了, ?
  • //?說在未來版本中可能不再支持此,所以會(huì)有警告, ?
  • //?但因?yàn)槠浜?jiǎn)單,易于初學(xué)者學(xué)習(xí),故在此我依然拿它做例子 ?
  • //?這里,disabled掉這個(gè)警告。 ?
  • #pragma?warning(disable?:?4995) ?
  • ?
  • //?工程配置注意事項(xiàng) ?
  • //?由于CDaoDatabase是派生于MFC的CObject類,故工程中需要加入MFC共享庫的支持 ?
  • //?具體配置方法,修改VS2008左側(cè)的工程名稱上右鍵->屬性(properties)->常規(guī)(general)->使用MFC(use?of?mfc) ?
  • //?選擇Use?MFC?in?a?Shared?DL ?
  • ?
  • int?_tmain(int?argc,?_TCHAR*?argv[]) ?
  • { ?
  • ????//?數(shù)據(jù)庫操作類 ?
  • ????CDaoDatabase?m_db;???? ?
  • ?
  • ????//?數(shù)據(jù)庫用戶信息表操作對(duì)象 ?
  • ????//?MSDN上有說明,該類對(duì)象創(chuàng)建時(shí)需要綁定表所依附的數(shù)據(jù)庫對(duì)象 ?
  • ????CDaoTableDef?m_tableDef(&m_db); ?
  • ?
  • ????//?創(chuàng)建記錄集對(duì)象 ?
  • ????CDaoRecordset?rs(&m_db); ?
  • ?
  • ????//?DAO引擎初始化 ?
  • ????AfxDaoInit(); ?
  • ?
  • ????//創(chuàng)建無密碼的數(shù)據(jù)庫 ?
  • ????TRY ?
  • ????{ ?
  • ????????m_db.Create(_T("D:\\user.mdb"),dbLangGeneral,dbVersion30);???? ?
  • ????} ?
  • ????CATCH(CDaoException,?e) ?
  • ????{ ?
  • // 通過這條語句可以將錯(cuò)誤描述字符串存儲(chǔ)到szError中
    ?? CString szError = e->m_pErrorInfo-> m_strDescription;
  • ????????std::cout?<<?"error?occur?!"?<<std::endl; ?
  • ????????return?0; ?
  • ????} ?
  • ????END_CATCH ?
  • ?
  • ????//?打開數(shù)據(jù)庫 ?
  • ????if?(!m_db.IsOpen()) ?
  • ????{ ?
  • ????????TRY ?
  • ????????{ ?
  • ????????????//?參數(shù)1:數(shù)據(jù)庫全路徑,參數(shù)2:是否獨(dú)占,參數(shù)3:是否只讀模式,參數(shù)4:密碼 ?
  • ????????????m_db.Open(_T("D:\\user.mdb"),?TRUE,?FALSE,?_T("")); ?
  • ????????} ?
  • ????????CATCH(CDaoException,?e) ?
  • ????????{ ?
  • ????????????std::cout?<<?"error?occur?!"?<<std::endl; ?
  • ????????????return?0; ?
  • ????????} ?
  • ????????END_CATCH ?
  • ????} ?
  • ?
  • ????//?創(chuàng)建表 ?
  • ????TRY ?
  • ????{ ?
  • ????????m_tableDef.Create(_T("登錄信息表")); ?
  • ????} ?
  • ????CATCH(CDaoException,?e) ?
  • ????{ ?
  • ????????std::cout?<<?"error?occur?!"?<<std::endl; ?
  • ????????return?0; ?
  • ????} ?
  • ????END_CATCH ?
  • ?
  • ????//?創(chuàng)建字段 ?
  • ????TRY ?
  • ????{ ?
  • ????????//?學(xué)號(hào) ?
  • ????????m_tableDef.CreateField(_T("學(xué)號(hào)"),dbText,200,dbVariableField|dbUpdatableField); ?
  • ????????//?密碼 ?
  • ????????m_tableDef.CreateField(_T("密碼"),dbText,200,dbVariableField|dbUpdatableField); ?
  • ????????//?年齡 ?
  • ????????m_tableDef.CreateField(_T("年齡"),dbLong,200,dbVariableField|dbUpdatableField); ?
  • ?
  • ????????//?添加到數(shù)據(jù)庫中 ?
  • ????????m_tableDef.Append(); ?
  • ????} ?
  • ????CATCH(CDaoException,?e) ?
  • ????{ ?
  • ????????std::cout?<<?"error?occur?!"?<<std::endl; ?
  • ????????return?0; ?
  • ????} ?
  • ????END_CATCH ?
  • ?
  • ????//?添加一條新的記錄 ?
  • ????TRY?? ?
  • ????{?? ?
  • ????????//?打開記錄集 ?
  • ????????rs.Open(&m_tableDef); ?
  • ?
  • ????????//?移動(dòng)到記錄集的尾部 ?
  • ????????if?(!rs.IsEOF()) ?
  • ????????{ ?
  • ????????????rs.MoveLast(); ?
  • ????????} ?
  • ?
  • ????????//?準(zhǔn)備添加一條新的記錄? ?
  • ????????rs.AddNew();?? ?
  • ????????//?學(xué)號(hào) ?
  • ????????rs.SetFieldValue(_T("學(xué)號(hào)"),_T("012006011208")); ?
  • ????????//?密碼 ?
  • ????????rs.SetFieldValue(_T("密碼"),_T("123456")); ?
  • ????????//?年齡 ?
  • ????????rs.SetFieldValue(_T("年齡"),_T("18")); ?
  • ????????//?執(zhí)行添加操作到數(shù)據(jù)庫 ?
  • ????????rs.Update();?? ?
  • ?
  • ????????//?關(guān)閉記錄集 ?
  • ????????rs.Close(); ?
  • ????} ?
  • ????CATCH(CDaoException,?e) ?
  • ????{ ?
  • ????????std::cout?<<?"error?occur?!"?<<std::endl; ?
  • ????????return?0; ?
  • ????} ?
  • ????END_CATCH ?
  • ?
  • ????//?獲取用戶記錄 ?
  • ????TRY?? ?
  • ????{ ?
  • ????????//?打開記錄集 ?
  • ????????rs.Open(&m_tableDef); ?
  • ?
  • ????????//?移動(dòng)到第一條記錄 ?
  • ????????rs.MoveFirst(); ?
  • ?
  • ????????COleVariant?coleUserNo; ?
  • ????????COleVariant?colePassword; ?
  • ????????COleVariant?coleAge; ?
  • ?
  • ????????//?獲取值 ?
  • ????????rs.GetFieldValue(_T("學(xué)號(hào)"),?coleUserNo); ?
  • ????????rs.GetFieldValue(_T("密碼"),?colePassword); ?
  • ????????rs.GetFieldValue(_T("年齡"),?coleAge); ?
  • ?
  • ????????//?提取出整型數(shù)? ?
  • ????????LONG?age?=?coleAge.lVal; ?
  • ?
  • ????????//?提取字符串?dāng)?shù)據(jù) ?
  • ????????CString?szUserNo?=?V_BSTR(&coleUserNo);? ?
  • ????????CString?szPassword?=?V_BSTR(&colePassword); ?
  • ?
  • ????????//?關(guān)閉記錄集 ?
  • ????????rs.Close(); ?
  • ?
  • ????} ?
  • ????CATCH(CDaoException,?e) ?
  • ????{ ?
  • ????????std::cout?<<?"error?occur?!"?<<std::endl; ?
  • ????????return?0; ?
  • ????} ?
  • ????END_CATCH ?
  • ???????? ?
  • ????//?關(guān)閉數(shù)據(jù)庫 ?
  • ????TRY ?
  • ????{ ?
  • ????????if?(m_db.IsOpen()) ?
  • ????????{ ?
  • ????????????m_db.Close(); ?
  • ????????} ?
  • ????} ?
  • ????CATCH(CDaoException,?e) ?
  • ????{ ?
  • ????????std::cout?<<?"error?occur?!"?<<std::endl; ?
  • ????} ?
  • ????END_CATCH ?
  • ?
  • ????//?DAO引擎注銷 ?
  • ????AfxDaoTerm(); ?
  • ?
  • ????std::cout?<<?"?數(shù)據(jù)庫文件已經(jīng)輸出到D://user.mdb"?<<?std::endl; ?
  • ???? ?
  • ????int?temp; ?
  • ????std::cin?>>?temp; ?
  • ?
  • ????return?1; ?
  • } ?
  • ????? 希望大家仔細(xì)閱讀上述代碼,并通過MSDN的幫助,真正對(duì)數(shù)據(jù)庫編程有一個(gè)直觀的認(rèn)識(shí),以后進(jìn)行其他類型的數(shù)據(jù)庫編程就可以很快地上手了。

    ??????為了檢驗(yàn)大家是否真正了解和掌握了數(shù)據(jù)庫編程,下面我出一道題目,希望大家依靠自己的能力把它實(shí)現(xiàn),權(quán)當(dāng)練習(xí)練習(xí)。

    題目:簡(jiǎn)單的登陸系統(tǒng)

    提供簡(jiǎn)單的注冊(cè)功能,注冊(cè)信息包括:

    用戶名(不允許重復(fù)),登錄密碼,性別,年齡

    使用Access數(shù)據(jù)庫存儲(chǔ)上述信息

    程序提供如下功能:
    1. 啟動(dòng)程序后,自動(dòng)創(chuàng)建數(shù)據(jù)庫文件、用戶信息表、相應(yīng)的字段
    2. 能夠刪除數(shù)據(jù)表,然后重建數(shù)據(jù)表
    3. 能夠新增一條用戶記錄
    4. 能夠顯示數(shù)據(jù)庫中的全部用戶名
    5. 能夠顯示指定用戶名的個(gè)人信息
    6. 能夠刪除指定用戶名的記錄
    7. 能夠修改指定用戶名的用戶的年齡
    8. 能夠查詢顯示“年齡>18歲”的所有用戶名

    ?

    ?

    總結(jié)

    以上是生活随笔為你收集整理的数据库编程入门培训(二)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 青青艹在线观看 | 亚洲 欧美 日韩 在线 | 边吃奶边添下面好爽 | cao我| 欧洲xxxxx| 国产午夜精品无码 | 国产黄频在线观看 | 亚洲va在线观看 | 午夜福利啪啪片 | 亚洲综合精品 | 黑人精品欧美一区二区蜜桃 | 欧美v亚洲 | 亚洲影视在线观看 | 在线视频综合网 | 欧美一区二区视频在线观看 | 国产成人在线影院 | 国产电影免费观看高清完整版视频 | 欧美日韩精品一区 | 天天射av| 国产ts人妖调教重口男 | 国产成人亚洲精品自产在线 | 五月天综合色 | 福利视频h | 欧美成年人在线视频 | 亚洲乱码日产精品bd在线观看 | 国产精品777 | 免费在线观看a级片 | 日韩欧美一区二区在线 | 干成人网| 亚洲成a人在线观看 | 好色999| 久久春色| 这里只有精品在线播放 | 欧美黄视频在线观看 | 影音先锋每日资源 | 视频一区二区欧美 | 国产激情av在线 | 91精品国产自产在线观看 | 开心激情站 | 91精品国产色综合久久不卡电影 | 五月婷婷色 | 啪啪天堂| 日本人妖网站 | 亚洲乱亚洲乱 | 五月开心播播网 | 福利电影在线播放 | 国产精品四虎 | 强行侵犯视频在线观看 | 亚洲国产精品一区二区久久hs | 国产欧洲亚洲 | 涩涩爱影院| 色婷婷av一区二区三区之红樱桃 | 国产精品久久久久91 | 少妇高潮一区二区三区99刮毛 | 欧美综合视频 | 免费亚洲视频 | 97av.com| 久久在线 | 四虎免费影视 | 欧美热热| 波多野结衣之双调教hd | 97在线看| 综合网激情 | 91日韩精品 | 日韩精品――中文字幕 | 午夜久久福利 | 国产网红在线 | 黄色在线视频观看 | 亚洲狼人色| 国产精品果冻传媒 | 国模无码视频一区 | 波多野结衣一区二区三区四区 | wwww在线观看 | 日韩欧美国产网站 | 七月色| 欧美在线你懂的 | 一级视频免费观看 | 夜夜操天天干 | 99久久国产热无码精品免费 | 丰满肉嫩西川结衣av | 粉嫩小箩莉奶水四溅在线观看 | 中国农村一级片 | jizzjizz美国 | 女王脚交玉足榨精调教 | 黄色在线观看视频网站 | 欧美另类老妇 | 国产精品v欧美精品v日韩精品 | 亚洲成人久 | 国产艳情片 | 欧美午夜视频 | 国产三级日本三级在线播放 | 中文字幕看片 | 97视频一区| 色版视频| 重口味av| 2019日韩中文字幕 | 久久久久麻豆v国产精华液好用吗 | 久久机热 | 公肉吊粗大爽色翁浪妇视频 |