ADO数据库操作

本文介绍了一个使用MFC对话框进行员工信息管理的应用案例,包括添加和删除员工信息的功能实现。通过按钮点击事件,应用能够调用对话框进行数据输入,并利用ADO连接数据库执行SQL语句,完成数据的插入和删除。此外,文章详细展示了如何更新网格控件以显示最新的数据库记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

void CSjtestDlg::OnBnClickedButtonAdd()

{

    // TODO: 在此添加控件通知处理程序代码

    this->ShowWindow(SW_HIDE);

    DigAdd dig ;

    dig.DoModal() ;

    this->ShowWindow(SW_SHOW);

    m_Grid.DeleteAllItems() ;

    ADOConn m_Adoconn ;

       m_Adoconn.OnInitADOConn() ;

       CString sql ;

       sql.Format(_T("select * from employees order by 员工编号 desc"))  ;

       m_Adoconn.m_pRecordset = m_Adoconn.GetRecordSet((_bstr_t)sql) ;

       while(! m_Adoconn.m_pRecordset->adoEOF)

       {

              m_Grid.InsertItem(0,_T(""));

              m_Grid.SetItemText(0,0,(_bstr_t)m_Adoconn.m_pRecordset->GetCollect(_T("员工编号")));

              m_Grid.SetItemText(0,1,(_bstr_t)m_Adoconn.m_pRecordset->GetCollect(_T("员工姓名")));

              m_Grid.SetItemText(0,2,(_bstr_t)m_Adoconn.m_pRecordset->GetCollect(_T("所属部门")));

              m_Grid.SetItemText(0,3,(_bstr_t)m_Adoconn.m_pRecordset->GetCollect(_T("基本工资")));

              //将记录集指针移动到下一条记录

             m_Adoconn.m_pRecordset->MoveNext();

       }

       m_Adoconn.ExitConnect() ;

}

  

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

void CSjtestDlg::OnBnClickedButtonDelete()

{

    // TODO: 在此添加控件通知处理程序代码

    int indx = m_Grid.GetSelectionMark() ;//选中序号

    CString  str = m_Grid.GetItemText(indx,1) ;

    if(indx < 0)

      return ;

    CString info ;

    for(int i = 0 ; i < 4 ; i++){

        info += m_Grid.GetItemText(indx,i) ;

        info += _T("\n") ;

    }

    if(AfxMessageBox(info,MB_OKCANCEL,MB_ICONQUESTION) != IDOK)

        return ;

    ADOConn m_adoconn ;

    m_adoconn.OnInitADOConn() ;

    CString sql ;

    sql.Format(_T("Delete from employees where 员工姓名 = '%s' "),str) ;

    m_adoconn.ExecuteSQL((_bstr_t)sql) ;

    m_Grid.DeleteAllItems() ;

    sql.Format(_T("select * from employees order by 员工编号 desc"))  ;

    m_adoconn.m_pRecordset = m_adoconn.GetRecordSet((_bstr_t)sql) ;

 

       while(! m_adoconn.m_pRecordset->adoEOF)

       {

              m_Grid.InsertItem(0,_T(""));

              m_Grid.SetItemText(0,0,(_bstr_t)m_adoconn.m_pRecordset->GetCollect(_T("员工编号")));

              m_Grid.SetItemText(0,1,(_bstr_t)m_adoconn.m_pRecordset->GetCollect(_T("员工姓名")));

              m_Grid.SetItemText(0,2,(_bstr_t)m_adoconn.m_pRecordset->GetCollect(_T("所属部门")));

              m_Grid.SetItemText(0,3,(_bstr_t)m_adoconn.m_pRecordset->GetCollect(_T("基本工资")));

              //将记录集指针移动到下一条记录

             m_adoconn.m_pRecordset->MoveNext();

       }

        

       m_adoconn.ExitConnect() ;

}

  

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

void DigAdd::OnBnClickedOk(){

    // TODO: 在此添加控件通知处理程序代码

    UpdateData() ;

    CString sql ,x;

 

    ADOConn m_Adocon ;

    m_Adocon.OnInitADOConn() ;

      sql.Format(_T("select * from employees order by 员工编号 desc"))  ;

    m_Adocon.m_pRecordset = m_Adocon.GetRecordSet((_bstr_t)sql) ;

    int Size = 0 ;

    while(! m_Adocon.m_pRecordset->adoEOF){

         Size++ ;

         m_Adocon.m_pRecordset->MoveNext() ;

    }

    x.Format(_T("%d"),Size) ;

    sql.Format(_T(" insert into employees (员工编号 ,员工姓名 , 所属部门 , 基本工资) \

               values('%d' '%s''%s''%s') "),1 + Size  , this->m_name , this->m_bumen , this->m_money);

    m_Adocon.ExecuteSQL((_bstr_t)sql) ;

    MessageBox(x) ;

    m_Adocon.ExitConnect() ;

    CDialog::OnOK();

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值