一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

使用ADO對象添加、修改、刪除數(shù)據(jù)

 啟蒙彩魂 2011-04-28

使用ADO對象添加、修改、刪除數(shù)據(jù)

字體大?。?a class="big16 black" title=大號字 href="javascript:setFontSize(16)">大 龔厚升 發(fā)表于 2010-08-05 13:51評論0條  閱讀131次 
使用ADO對象對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行添加、修改和刪除等操作。首先創(chuàng)建一個(gè)ADO類,通過ADO類連接數(shù)據(jù)庫,并打開記錄集。
例如,使用ADO對象添加、修改、刪除數(shù)據(jù),程序設(shè)計(jì)步驟如下:
(1)創(chuàng)建一個(gè)基于對話框的應(yīng)用程序,將對話框的Caption屬性修改“使用ADO對象添加、修改、刪除數(shù)據(jù)”。
(2)向?qū)υ捒蛑刑砑右粋€(gè)列表視圖控件、3個(gè)靜態(tài)文本控件、3個(gè)編輯框控件和4個(gè)按鈕控件,并為控件關(guān)聯(lián)變量。
(3)創(chuàng)建一個(gè)ADO類,請參照封裝ADO對象的內(nèi)容。
(4)在StdAfx.h導(dǎo)入ADO動(dòng)態(tài)鏈接庫,代碼如下。
#import "C:Program FilesCommon FilesSystemadomsado15.dll" no_namespace
 rename("EOF","adoEOF")rename("BOF","adoBOF")     //導(dǎo)入ADO動(dòng)態(tài)鏈接庫
(5)在對話框的OnInitDialog函數(shù)設(shè)置列表視圖控件的擴(kuò)展風(fēng)格以及列標(biāo)題,代碼如下。
 m_Grid.SetExtendedStyle(LVS_EX_FLATSB       //扁平風(fēng)格顯示滾動(dòng)條
  |LVS_EX_FULLROWSELECT              //允許整行選中
  |LVS_EX_HEADERDRAGDROP           //允許整列拖動(dòng)
  |LVS_EX_ONECLICKACTIVATE          //單擊選中項(xiàng)
  |LVS_EX_GRIDLINES);                 //畫出網(wǎng)格線
 //設(shè)置列標(biāo)題及列寬度
 m_Grid.InsertColumn(0,"編號",LVCFMT_LEFT,110,0);
 m_Grid.InsertColumn(1,"姓名",LVCFMT_LEFT,110,1);
 m_Grid.InsertColumn(2,"學(xué)歷",LVCFMT_LEFT,110,2);
 AddToGrid();           //向列表中插入數(shù)據(jù)
(6)添加AddToGrid函數(shù),用來向列表視圖控件中插入數(shù)據(jù),代碼如下。
void CUseAdoDlg::AddToGrid()
{
 ADO m_Ado;           //聲明ADO類對象
 m_Ado.OnInitADOConn();         //連接數(shù)據(jù)庫
 CString SQL = "select * from employees order by 編號 desc";  //設(shè)置查詢字符串
 m_Ado.m_pRecordset = m_Ado.OpenRecordset(SQL);   //打開記錄集
 while(!m_Ado.m_pRecordset->adoEOF)      //記錄集不為空時(shí)循環(huán)
 {
  m_Grid.InsertItem(0,"");        //向列表視圖控件中插入行
  //向列表視圖控件中插入列
  m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_Ado.m_pRecordset->GetCollect("編號"));
  m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_Ado.m_pRecordset->GetCollect("姓名"));
  m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_Ado.m_pRecordset->GetCollect("學(xué)歷"));
  m_Ado.m_pRecordset->MoveNext();      //將記錄集指針移動(dòng)到下一條記錄
 }
 m_Ado.CloseRecordset();         //關(guān)閉記錄集
 m_Ado.CloseConn();         //斷開數(shù)據(jù)庫連接
}
(7)處理“添加”按鈕的單擊事件,將編輯框中的文本添加到數(shù)據(jù)庫中,代碼如下。
void CUseAdoDlg::OnButadd()
{
 UpdateData(TRUE);
 if(m_ID.IsEmpty() || m_Name.IsEmpty() || m_Culture.IsEmpty()) //數(shù)據(jù)不能為空
 {
  MessageBox("基礎(chǔ)信息不能為空!");     //為空時(shí)彈出提示信息
  return;
 }
 ADO m_Ado;           //聲明ADO類對象
 m_Ado.OnInitADOConn();         //連接數(shù)據(jù)庫
 CString sql = "select * from employees";      //設(shè)置查詢字符串
 m_Ado.m_pRecordset = m_Ado.OpenRecordset(sql);   //打開記錄集
 try
 {
  m_Ado.m_pRecordset->AddNew();       //添加新行
  //向數(shù)據(jù)庫中插入數(shù)據(jù)
  m_Ado.m_pRecordset->PutCollect("編號",(_bstr_t)m_ID);
  m_Ado.m_pRecordset->PutCollect("姓名",(_bstr_t)m_Name);
  m_Ado.m_pRecordset->PutCollect("學(xué)歷",(_bstr_t)m_Culture);
  m_Ado.m_pRecordset->Update();       //更新數(shù)據(jù)表記錄
  m_Ado.CloseRecordset();        //關(guān)閉記錄集
  m_Ado.CloseConn();        //斷開數(shù)據(jù)庫連接
 }
 catch(...)            //捕捉可能出現(xiàn)的錯(cuò)誤
 {
  MessageBox("操作失敗");        //彈出錯(cuò)誤提示
  return;
 }
 MessageBox("添加成功");         //提示操作成功
 m_Grid.DeleteAllItems();          //刪除列表控件
 AddToGrid();           //向列表中插入數(shù)據(jù)
}
(8)處理列表視圖控件的單擊事件,在列表項(xiàng)被選中時(shí),將列表項(xiàng)中的數(shù)據(jù)顯示到編輯框中,代碼如下。
void CUseAdoDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
 int pos    = m_Grid.GetSelectionMark();      //獲得當(dāng)前選中列表項(xiàng)索引
 //獲得列表項(xiàng)數(shù)據(jù)
 m_ID     = m_Grid.GetItemText(pos,0);
 m_Name  = m_Grid.GetItemText(pos,1);
 m_Culture = m_Grid.GetItemText(pos,2);
 UpdateData(FALSE);         //更新控件顯示
 *pResult = 0;
}
(9)處理“修改”的單擊事件,根據(jù)編輯框中的數(shù)據(jù)修改數(shù)據(jù)庫中的數(shù)據(jù),代碼如下。
void CUseAdoDlg::OnButmod()
{
 UpdateData(TRUE);
 if(m_ID.IsEmpty() || m_Name.IsEmpty() || m_Culture.IsEmpty()) //數(shù)據(jù)不能為空
 {
  MessageBox("基礎(chǔ)信息不能為空!");     //為空時(shí)彈出提示信息
  return;
 }
 int pos   = m_Grid.GetSelectionMark();      //獲得當(dāng)前選中列表項(xiàng)索引
 ADO m_Ado;           //聲明ADO類對象
 m_Ado.OnInitADOConn();         //連接數(shù)據(jù)庫
 CString sql = "select * from employees";      //設(shè)置查詢字符串
 m_Ado.m_pRecordset = m_Ado.OpenRecordset(sql);   //打開記錄集
 try
 {
  m_Ado.m_pRecordset->Move((long)pos,vtMissing);   //將記錄集指針移動(dòng)到選中的記錄
  //設(shè)置選中記錄的文本
  m_Ado.m_pRecordset->PutCollect("編號",(_bstr_t)m_ID);
  m_Ado.m_pRecordset->PutCollect("姓名",(_bstr_t)m_Name);
  m_Ado.m_pRecordset->PutCollect("學(xué)歷",(_bstr_t)m_Culture);
  m_Ado.m_pRecordset->Update();      //更新記錄集
  m_Ado.CloseRecordset();        //關(guān)閉記錄集
 m_Ado.CloseConn();          //斷開數(shù)據(jù)庫連接
 }
 catch(...)             //捕捉可能出現(xiàn)的錯(cuò)誤
 {
  MessageBox("操作失敗");        //彈出錯(cuò)誤提示
  return;
 }
 MessageBox("添加成功");         //提示操作成功
 m_Grid.DeleteAllItems();          //刪除列表控件
 AddToGrid();            //向列表中插入數(shù)據(jù)
}
 提示:在catch語句部分我們使用了“…”表示捕捉所有錯(cuò)誤,也就是說在try語句部分產(chǎn)生任何錯(cuò)誤,都會(huì)進(jìn)入catch語句塊部分進(jìn)行處理。
(10)處理“刪除”按鈕的單擊事件,刪除列表框中被選中的列表項(xiàng),代碼如下。
void CUseAdoDlg::OnButdel()
{
 int pos   = m_Grid.GetSelectionMark();      //獲得當(dāng)前選中列表項(xiàng)索引
 ADO m_Ado;           //聲明ADO類對象
 m_Ado.OnInitADOConn();         //連接數(shù)據(jù)庫
 CString sql = "select * from employees";      //設(shè)置查詢字符串
 m_Ado.m_pRecordset = m_Ado.OpenRecordset(sql);   //打開記錄集
 try
 {
  m_Ado.m_pRecordset->Move(pos,vtMissing);    //將記錄集指針移動(dòng)到選中的記錄
  m_Ado.m_pRecordset->Delete(adAffectCurrent);   //刪除選中的記錄
  m_Ado.m_pRecordset->Update();      //更新記錄集
  m_Ado.CloseRecordset();        //關(guān)閉記錄集
  m_Ado.CloseConn();        //斷開數(shù)據(jù)庫連接
 }
 catch(...)            //捕捉可能出現(xiàn)的錯(cuò)誤
 {
  MessageBox("操作失敗");        //彈出錯(cuò)誤提示
  return;
 }
 MessageBox("刪除成功");         //提示操作成功
 OnButclear();           //清空編輯框中數(shù)據(jù)
 m_Grid.DeleteAllItems();          //刪除列表控件
 AddToGrid();           //向列表中插入數(shù)據(jù)
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    a久久天堂国产毛片精品| 国产精欧美一区二区三区久久| 日韩女优视频国产一区| 日韩精品日韩激情日韩综合| 丁香六月啪啪激情综合区| 超薄丝袜足一区二区三区| 大香蕉久草网一区二区三区| 国产成人国产精品国产三级 | 黄男女激情一区二区三区| 国产高清在线不卡一区| 国产一区二区三区免费福利| 91蜜臀精品一区二区三区| 精品人妻久久一品二品三品| 99热中文字幕在线精品| 亚洲欧美视频欧美视频| 国产精品激情在线观看| 国产精品久久精品毛片| 国产黑人一区二区三区| 日本美国三级黄色aa| 国产精品久久男人的天堂| 99秋霞在线观看视频| 日本av一区二区不卡| 欧美日韩亚洲精品在线观看| 欧美韩国日本精品在线| 亚洲一区二区欧美激情| 日本理论片午夜在线观看| 日韩黄片大全免费在线看| 国产自拍欧美日韩在线观看| 日韩免费成人福利在线| 亚洲熟妇熟女久久精品 | 欧美日韩一区二区午夜| 日韩国产精品激情一区| 最近日韩在线免费黄片| 91偷拍裸体一区二区三区| 五月婷婷亚洲综合一区| 人妻中文一区二区三区| 欧美日韩精品久久第一页| 欧美av人人妻av人人爽蜜桃| 中文字幕av诱惑一区二区 | 成人精品一区二区三区综合| 东京不热免费观看日本|