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. myeclipse中的weblogic 服务未正常关闭问题解决。

    myeclipse中的weblogic 服务若未正常关闭,直接启动服务会出现weblogic服务被锁. 正确操作:应该将相应的服务关掉然后重启 打开任务管理器,进入进程找到javaw,将进程结束.然后 ...

  2. oracle执行计划之-表连接方式

    转载自:http://blog.csdn.net/tianlesoftware/article/details/5826546 在多表联合查询的时候,如果我们查看它的执行计划,就会发现里面有多表之间的 ...

  3. PS中的图像知识

    图像处理对于前端工作来说是一个不能回避的问题,ps技术也是我们必备的技能.用法可以在使用中不断的熟练,但针对前端技术本身的一些知识点,需要我们平时不断的积累才能够在使用中不出现问题. 如今的办公,已经 ...

  4. TP中关于自定义类库的添加和使用

    ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的.只要按照规范定义,都可以实现自动加载. 类库存放位置:Think目录:系统核心类库Org目录:第三方公共类库demo ...

  5. canvas 画字

    用canvas画字还是头一回,要想和UI设计的画的一模一样还是真有些苦难,不过现在实现的效果已经很像了. <!--通过字体文件引入字体--><style>@font-face ...

  6. pwnable echo2

    pwnable echo2 linux 32位程序 涉及FSB和UAF漏洞的利用,先%x泄露地址,然后利用UAF漏洞进行利用 code:

  7. Android学习九:屏幕自适应

    android中不同手机分辨率适配问题 在项目开发的过程中,同一个布局对应不同的手机会显示出不同的效果.导致这个现象产生的原因是不同手机的分辨率不同.在android sdk提供的帮助文档中,我们可以 ...

  8. REPEATABLE-READ下批量更新数据的问题

    1. 当前mysql的隔离级别 REPEATABLE-READ 2. 用户读取的时候或者更改的时候(通过事务)   会对 更改的数据加行锁 和 gap锁 , 最终更改完毕后 去掉锁. (行锁表示这条数 ...

  9. sqldeveloper

    阅读文档:e12152-08 preferences 首选项,参数 panes 窗格 tabs 标签,选项卡 pin 别针,钉住 detach,move,dock 分离,移动,停靠 find data ...

  10. [转]windows下编译及使用libevent

    http://www.cnblogs.com/luxiaoxun/p/3603399.html Libevent官网:http://libevent.org/ windows 7下编译: 编译环境:  ...