MFC連接到SQL(ADO數據庫訪問技術)——表的查詢,添加,刪除

MFC連接到SQL(ADO數據庫訪問技術)——表的查詢,添加,刪除

         看了我的那篇文章“MFC連接到SQL(ADO數據庫訪問技術)——絕對簡單”之後,你或許會問,爲什麼要連接了,下面就是一個應用:表的查詢,添加,刪除。【注:例子很簡單很固定】

1.初始操作:如上篇文章“MFC連接到SQL(ADO數據庫訪問技術)——絕對簡單”

2.在sql中建個student(sno char(6),sname(20),sage int)表,插入一些值。

3。連接好了,但是如果想要查詢表格呢,就看下面:拖一個Listctrl控件顯示(ctrl+w設置變量名m_list)『屬性中查看設爲“報道”』,一個button查詢,一個button添加,一個button刪除。然後就代碼了:
在OnInitDialog()函數中添加: 
   //初始化表格m_list是listctrl的變量
    m_list.SetExtendedStyle(LVS_EX_FLATSB
   |LVS_EX_FULLROWSELECT
   |LVS_EX_GRIDLINES);
m_list.InsertColumn(0,"Sno");
m_list.InsertColumn(1,"Sname");
m_list.InsertColumn(2,"Sage");
CRect rect3;
m_list.GetClientRect(rect3);
m_list.SetColumnWidth(0,rect3.Width()/3);
m_list.SetColumnWidth(1,rect3.Width()/3);
m_list.SetColumnWidth(2,rect3.Width()/3);
不要問我這些函數,自己查msdn(我只能提供框架)。


4.查詢button中添加: if(m_list)
m_list.DeleteAllItems();
int intm;
try
{
_variant_t RecordsAffected;
_bstr_t sno, sname,sage;
mysql.m_pRecordset = mysql.m_pConnection->Execute("select * from student",&RecordsAffected,adCmdText); 
while(!mysql.m_pRecordset->adoEOF)
   {//獲取表中信息
   sno= mysql.m_pRecordset->GetCollect("sno");
   sname=mysql.m_pRecordset->GetCollect("sname");
   sage=mysql.m_pRecordset->GetCollect("sage");
       //顯示錶中信息
   intm=m_list.InsertItem(0,(_bstr_t)sno);
   m_list.SetItem(intm,1,1,(_bstr_t)sname,NULL,0,0,0);
   m_list.SetItem(intm,2,1,(_bstr_t)sage,NULL,0,0,0);
         mysql.m_pRecordset->MoveNext();
}
AfxMessageBox("查詢成功!");
}
    catch (_com_error e)
{
   CString errormessage;
   errormessage.Format("查詢失敗!\r\n錯誤信息:%s",e.ErrorMessage());
   AfxMessageBox(errormessage);
   return ;
   }


5.好了,不要着急哦,在添加button前要添加幾個edit的控件哦,然後從中讀入數據,我取變量名爲m_e1,m_e2,m_e3;然後添加代碼:
try
{
   _variant_t RecordsAffected;
   CString sno;
   CString sname;
   CString sage;
   _bstr_t Insert;
  
        m_e1.GetWindowText(sno);
   m_e2.GetWindowText(sname);
   m_e3.GetWindowText(sage);
   Insert = "Insert into student(sno, sname, sage) values('" + sno + "',\
    '" + sname + "', '" + sage + "' ) ";
   mysql.m_pRecordset = mysql.m_pConnection->\
    Execute(Insert, &RecordsAffected, adCmdText);
   AfxMessageBox("添加成功!");
   //清空輸入框
   m_e1.SetSel(0,-1);   
        m_e1.Clear();
   m_e2.SetSel(0,-1);   
        m_e2.Clear();
   m_e3.SetSel(0,-1);   
        m_e3.Clear();
}
catch (_com_error e)
{
   CString errormessage;
   errormessage.Format("添加失敗!\r\n錯誤信息:%s", e.ErrorMessage());
   AfxMessageBox(errormessage);
   return ;
}

6現在是刪除了,我舉的是通過學號刪除列,添加一個edit控件,取名m_e4。添加代碼:
try
{
   _variant_t RecordsAffected;
   CString sno,sname,sage;
   _bstr_t Delete;
       
        m_e4.GetWindowText(sno);
   Delete="delete from student where sno='"+sno+"'";
   mysql.m_pRecordset = mysql.m_pConnection->Execute(Delete,&RecordsAffected,adCmdText);
      AfxMessageBox("刪除成功!");
   //清空輸入框
   m_e4.SetSel(0,-1);   
        m_e4.Clear();
}
       catch (_com_error e)
         {
            CString errormessage;
            errormessage.Format("刪除失敗!\r\n錯誤信息:%s",e.ErrorMessage());
              AfxMessageBox(errormessage);
            return ;
            }


7在退出連接的按鈕代碼下添加:
mysql.ExitConnect();

8.如有不懂,看我的上篇文章“MFC連接到SQL(ADO數據庫訪問技術)——絕對簡單”

大功完成,其實我只是初識MFC,所以做的很簡陋,僅僅以舉例讓大家入門,其實連接很簡單,看完這兩篇文章就入門了,而我花了一天時間到處查資料才弄出來,而且網上的代碼都殘缺不全,也不繫統,不能針對高端,也不適合初學者,所以我就爲大家分享了自己的經驗。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章