日韩性视频-久久久蜜桃-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ò),歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 国产亚洲久久 | 成人欧美一区二区三区黑人 | 91精品国产一区二区三竹菊影视 | 成人免费视频一区二区 | 欧美1区2区3区4区 | 青青草超碰 | 香蕉视频在线网站 | 精品96久久久久久中文字幕无 | 日韩少妇 | 在线观看的黄网 | 欧美精品videos另类日本 | 成年免费视频 | 亚洲小视频在线观看 | 操操操操操操操 | 少妇高潮久久久 | 91av在线免费视频 | 国产欧美久久久精品免费 | 毛茸茸成熟亚洲人 | 国产精品视频无码 | 亚洲一区二区av在线 | 久久久久久久久电影 | www.youjizz.com亚洲| 看全黄大色黄大片 | 欧美 日韩 高清 | 中文字幕观看 | 粉嫩av在线| 精品无码一区二区三区的天堂 | julia中文字幕在线 | 欧美日免费 | 狠狠鲁视频 | 久久艹国产精品 | 国产精品videossex国产高清 | 农村老熟妇乱子伦视频 | 黄色三级视频网站 | 日本黄色www | 好大好舒服视频 | 日本在线加勒比 | 亚洲精品123区 | 日本特级毛片 | 久久久福利 | 一区二区三区四区在线免费观看 | 免费在线观看你懂的 | 成av人在线| 中日韩中文字幕 | 欧美风情第一页 | 91久| 日韩激情视频一区二区 | 日产亚洲一区二区三区 | 深夜福利日韩 | 黑人操日本女人视频 | 黑人巨大av | 色天使亚洲 | 性生交大全免费看 | yellow免费在线观看 | 户外少妇对白啪啪野战 | 91一区视频 | 日批视频 | 日本美女在线 | 四月婷婷 | 成人欧美一区二区三区黑人冫 | 香蕉视频网站入口 | 邻居少妇张开腿让我爽了在线观看 | 久久99精品久久久久久水蜜桃 | 亚洲国产黄色片 | 国产69精品久久久久777 | 中国一级片黄色一级片黄 | 天堂婷婷| 中文字幕av影院 | 麻豆午夜 | 色戒在线免费 | 亚洲午夜小视频 | 奇米成人影视 | www.av天天 | 伊人伊色 | 九九热播视频 | 激情五月开心婷婷 | 在线看黄色av | 国产在线拍揄自揄拍无码 | 亚洲视频精选 | 久久在线精品视频 | 夜夜免费视频 | 性色影院 | 国产成人精品999在线观看 | 亚洲国产精品尤物yw在线观看 | 艳妇臀荡乳欲伦交换h漫 | 激情小说中文字幕 | 男人网站在线观看 | 在线看黄色的网站 | 日本精品入口免费视频 | 久久久久亚洲国产 | 狠狠干狠狠插 | 少妇精品亚洲一区二区成人 | 国产视频在 | 天堂久久网 | 老鸭窝视频在线观看 | mm1313亚洲国产精品美女 | 精品视频一二三区 | 免费观看污 | 秋葵视频污 |