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() ;
}

  

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() ;
}

  

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();
}

  

ADO数据库操作的更多相关文章

  1. VC与ADO数据库操作

    VC与ADO数据库操作 学研部的同志们,大家好! 想开一次学习会,实习时间冲突了,只好把文档发给大家看了.重点推荐李振龙的BMP读图教程! 尤其是大三GIS班的同志,注意了,可能实习用得上的! 一.A ...

  2. MFC ADO数据库操作

    MFC ADO数据库操作 - 延陵小明 - CSDN博客 http://blog.csdn.net/guoming0000/article/details/7280070/ 内容比较乱,作为草稿,对现 ...

  3. ADO.NET操作数据库(一)

    ---恢复内容开始--- [1]ADO.Net简介2015-12-07-20:16:05 ADO.Net提供对Microsoft SQL Server数据源以及通过OLE DB和XML公开的数据源的一 ...

  4. 数据库操作(ADO)

    QTP工具本身自带有数据查询和验证功能,但是使用的人会感觉这个功能使用起来比较麻烦,灵活性和复用性较低,于是我们选择了用脚本调用ADO组件实现数据库的操作,现总结下工作中用到的数据库操作,代码如下: ...

  5. VC++中使用ADO方式操作ACCESS数据库

    ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,即使你对OLE DB,COM不了解也能轻松对付ADO,因为 ...

  6. MFC,ADO方式实现数据库操作

    参考: MSDN数据访问编程 (MFC/ATL): https://msdn.microsoft.com/zh-cn/library/kd4ck1tt.aspx?f=255&MSPPError ...

  7. ado.net的简单数据库操作(二)之封装SqlHelperl类

    今天我书接上回,接着昨天的ado.net的数据库操作的相关知识来讲哈! 从上篇文章给出的实例来看,你一定会发现,操作数据库其实还挺麻烦的,就连一个最简单的数据库操作语句都要包括 定义数据库连接字符串. ...

  8. ado.net的简单数据库操作(一)

    摘要:接下来的几篇博客将要讲到如何使用ado.net实现简单的数据库操作,包括增删改等内容.首先会介绍基础的数据库操作,然后以一个实例来进行讲解,这个实例会把一个数据表读取到winform上,然后在w ...

  9. 使用ado.net打造通用的数据库操作类

    最近在项目中使用中碰到了这样一种情况,查询的数据是从Oracle中获取的,但是记录下来的数据是存在Sql Server中(企业Oracle数据库管理太严,没办法操作).而且我在之前的工作中也碰到过使用 ...

随机推荐

  1. SAX解析DOM4J的方法总结

    <二 .利用SAX进行DOM解析DOM4J的基本练习>    一. 本次总结用到的xml文档    <?xml version="1.0" encoding=&q ...

  2. 转载《SimpleAdapter的参数说明》

    SimpleAdapter的参数说明 第一个参数 表示访问整个android应用程序接口,基本上所有的组件都需要 第二个参数表示生成一个Map(String ,Object)列表选项 第三个参数表示界 ...

  3. android Handler.btionMessage()与Message.obtain()的区别

    类概述 定义一个包含任意类型的描述数据对象,此对象可以发送给Handler.对象包含两个额外的int字段和一个额外的对象字段,这样可以使得在很多情况下不用做分配工作. 尽管Message的构造器是公开 ...

  4. 继续OI

    NOIP2016于2016.11.20日12:00正式结束. 我作为oi的生涯 或许会结束? 或者继续? 然而前途依然迷茫,我是否应该继?或是放弃? 距离省选还有3~4个月,我该何去何从? 虽然已经经 ...

  5. 前端学习 第三弹: JavaScript语言的特性与发展

    前端学习 第三弹: JavaScript语言的特性与发展 javascript的缺点 1.没有命名空间,没有多文件的规范,同名函数相互覆盖 导致js的模块化很差 2.标准库很小 3.null和unde ...

  6. Ogre中OIS的输入的使用

    OIS的使用有两种模式:缓冲模式和非缓冲模式.非缓冲方式能处理鼠标或键盘长按的事件,实时性强缓冲方式则不能长按事件,用于非实时响应. 非缓冲输入:1.创建方式:其中 false 参数代表使用非缓冲模式 ...

  7. Python之路,day5-Python基础

    for#列表生成式 data = [1,2,3,4,5,6,7] #####列表生成式 #data = [i+1 for i in data] data = [i*2 if i>5 else i ...

  8. Centos6.5 设置Tomcat8 service服务实现自启动和服务管理

    Centos6.5 设置Tomcat8 service服务实现自启动和服务管理 将tomcat设置成像apache,nginx一样. 用serviec xxxx start/stop/restart ...

  9. centos6.5 升级安装pcre 8.39版本

    1.查看系统pcre安装情况 rpm -qa pcre 2.卸载系统自带的旧版本 rpm -e --nodeps pcre 3.下载新版安装 地址:ftp://ftp.csx.cam.ac.uk/pu ...

  10. 6个强大的AngularJS扩展应用

    本文链接:http://www.codeceo.com/article/6-angularjs-extension.html本文作者:码农网 – 小峰 AngularJS现在非常热门,是Google推 ...