使用ADO对象添加、修改、删除数据-阿里云开发者社区

开发者社区> 狂师> 正文

使用ADO对象添加、修改、删除数据

简介: 使用ADO对象对数据库中的数据进行添加、修改和删除等操作。首先创建一个ADO类,通过ADO类连接数据库,并打开记录集。例如,使用ADO对象添加、修改、删除数据,程序设计步骤如下:(1)创建一个基于对话框的应用程序,将对话框的Caption属性修改“使用ADO对象添加、修改、删除数据”。
+关注继续查看

使用ADO对象对数据库中的数据进行添加、修改和删除等操作。首先创建一个ADO类,通过ADO类连接数据库,并打开记录集。
例如,使用ADO对象添加、修改、删除数据,程序设计步骤如下:
(1)创建一个基于对话框的应用程序,将对话框的Caption属性修改“使用ADO对象添加、修改、删除数据”。
(2)向对话框中添加一个列表视图控件、3个静态文本控件、3个编辑框控件和4个按钮控件,并为控件关联变量。
(3)创建一个ADO类,请参照封装ADO对象的内容。
(4)在StdAfx.h导入ADO动态链接库,代码如下。
#import "C:Program FilesCommon FilesSystemadomsado15.dll" no_namespace
 rename("EOF","adoEOF")rename("BOF","adoBOF")     //导入ADO动态链接库
(5)在对话框的OnInitDialog函数设置列表视图控件的扩展风格以及列标题,代码如下。
 m_Grid.SetExtendedStyle(LVS_EX_FLATSB       //扁平风格显示滚动条
  |LVS_EX_FULLROWSELECT              //允许整行选中
  |LVS_EX_HEADERDRAGDROP           //允许整列拖动
  |LVS_EX_ONECLICKACTIVATE          //单击选中项
  |LVS_EX_GRIDLINES);                 //画出网格线
 //设置列标题及列宽度
 m_Grid.InsertColumn(0,"编号",LVCFMT_LEFT,110,0);
 m_Grid.InsertColumn(1,"姓名",LVCFMT_LEFT,110,1);
 m_Grid.InsertColumn(2,"学历",LVCFMT_LEFT,110,2);
 AddToGrid();           //向列表中插入数据
(6)添加AddToGrid函数,用来向列表视图控件中插入数据,代码如下。
void CUseAdoDlg::AddToGrid()
{
 ADO m_Ado;           //声明ADO类对象
 m_Ado.OnInitADOConn();         //连接数据库
 CString SQL = "select * from employees order by 编号 desc";  //设置查询字符串
 m_Ado.m_pRecordset = m_Ado.OpenRecordset(SQL);   //打开记录集
 while(!m_Ado.m_pRecordset->adoEOF)      //记录集不为空时循环
 {
  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("学历"));
  m_Ado.m_pRecordset->MoveNext();      //将记录集指针移动到下一条记录
 }
 m_Ado.CloseRecordset();         //关闭记录集
 m_Ado.CloseConn();         //断开数据库连接
}
(7)处理“添加”按钮的单击事件,将编辑框中的文本添加到数据库中,代码如下。
void CUseAdoDlg::OnButadd()
{
 UpdateData(TRUE);
 if(m_ID.IsEmpty() || m_Name.IsEmpty() || m_Culture.IsEmpty()) //数据不能为空
 {
  MessageBox("基础信息不能为空!");     //为空时弹出提示信息
  return;
 }
 ADO m_Ado;           //声明ADO类对象
 m_Ado.OnInitADOConn();         //连接数据库
 CString sql = "select * from employees";      //设置查询字符串
 m_Ado.m_pRecordset = m_Ado.OpenRecordset(sql);   //打开记录集
 try
 {
  m_Ado.m_pRecordset->AddNew();       //添加新行
  //向数据库中插入数据
  m_Ado.m_pRecordset->PutCollect("编号",(_bstr_t)m_ID);
  m_Ado.m_pRecordset->PutCollect("姓名",(_bstr_t)m_Name);
  m_Ado.m_pRecordset->PutCollect("学历",(_bstr_t)m_Culture);
  m_Ado.m_pRecordset->Update();       //更新数据表记录
  m_Ado.CloseRecordset();        //关闭记录集
  m_Ado.CloseConn();        //断开数据库连接
 }
 catch(...)            //捕捉可能出现的错误
 {
  MessageBox("操作失败");        //弹出错误提示
  return;
 }
 MessageBox("添加成功");         //提示操作成功
 m_Grid.DeleteAllItems();          //删除列表控件
 AddToGrid();           //向列表中插入数据
}
(8)处理列表视图控件的单击事件,在列表项被选中时,将列表项中的数据显示到编辑框中,代码如下。
void CUseAdoDlg::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult)
{
 int pos    = m_Grid.GetSelectionMark();      //获得当前选中列表项索引
 //获得列表项数据
 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)处理“修改”的单击事件,根据编辑框中的数据修改数据库中的数据,代码如下。
void CUseAdoDlg::OnButmod()
{
 UpdateData(TRUE);
 if(m_ID.IsEmpty() || m_Name.IsEmpty() || m_Culture.IsEmpty()) //数据不能为空
 {
  MessageBox("基础信息不能为空!");     //为空时弹出提示信息
  return;
 }
 int pos   = m_Grid.GetSelectionMark();      //获得当前选中列表项索引
 ADO m_Ado;           //声明ADO类对象
 m_Ado.OnInitADOConn();         //连接数据库
 CString sql = "select * from employees";      //设置查询字符串
 m_Ado.m_pRecordset = m_Ado.OpenRecordset(sql);   //打开记录集
 try
 {
  m_Ado.m_pRecordset->Move((long)pos,vtMissing);   //将记录集指针移动到选中的记录
  //设置选中记录的文本
  m_Ado.m_pRecordset->PutCollect("编号",(_bstr_t)m_ID);
  m_Ado.m_pRecordset->PutCollect("姓名",(_bstr_t)m_Name);
  m_Ado.m_pRecordset->PutCollect("学历",(_bstr_t)m_Culture);
  m_Ado.m_pRecordset->Update();      //更新记录集
  m_Ado.CloseRecordset();        //关闭记录集
 m_Ado.CloseConn();          //断开数据库连接
 }
 catch(...)             //捕捉可能出现的错误
 {
  MessageBox("操作失败");        //弹出错误提示
  return;
 }
 MessageBox("添加成功");         //提示操作成功
 m_Grid.DeleteAllItems();          //删除列表控件
 AddToGrid();            //向列表中插入数据
}
 提示:在catch语句部分我们使用了“…”表示捕捉所有错误,也就是说在try语句部分产生任何错误,都会进入catch语句块部分进行处理。
(10)处理“删除”按钮的单击事件,删除列表框中被选中的列表项,代码如下。
void CUseAdoDlg::OnButdel()
{
 int pos   = m_Grid.GetSelectionMark();      //获得当前选中列表项索引
 ADO m_Ado;           //声明ADO类对象
 m_Ado.OnInitADOConn();         //连接数据库
 CString sql = "select * from employees";      //设置查询字符串
 m_Ado.m_pRecordset = m_Ado.OpenRecordset(sql);   //打开记录集
 try
 {
  m_Ado.m_pRecordset->Move(pos,vtMissing);    //将记录集指针移动到选中的记录
  m_Ado.m_pRecordset->Delete(adAffectCurrent);   //删除选中的记录
  m_Ado.m_pRecordset->Update();      //更新记录集
  m_Ado.CloseRecordset();        //关闭记录集
  m_Ado.CloseConn();        //断开数据库连接
 }
 catch(...)            //捕捉可能出现的错误
 {
  MessageBox("操作失败");        //弹出错误提示
  return;
 }
 MessageBox("删除成功");         //提示操作成功
 OnButclear();           //清空编辑框中数据
 m_Grid.DeleteAllItems();          //删除列表控件
 AddToGrid();           //向列表中插入数据
}

技术改变世界! --狂诗绝剑

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
.NET数据库编程求索之路--6.使用ADO.NET实现(三层架构篇-使用List传递数据-基于存储过程)(1)
6.使用ADO.NET实现(三层架构篇-使用List传递数据-基于存储过程)(1)    【 夏春涛 email: xchuntao@163.com  blog: http://www.cnblogs.
730 0
.NET数据库编程求索之路--6.使用ADO.NET实现(三层架构篇-使用List传递数据-基于存储过程)(2)
6.使用ADO.NET实现(三层架构篇-使用List传递数据-基于存储过程)(2)      【 夏春涛 email: xchuntao@163.com  blog: http://www.cnblogs.
770 0
Excel中添加并使用宏实现批量更新数据
一、状况描述    当我们需要后台更新大量数据的时候,可以使用该功能。二、解決方案    (1)新建一个Excel文件,并另存为启用宏的Excel工作簿,扩展名为.xlsm。    (2)在Excel中添加按钮。
1125 0
实例:使用纹理对象创建Sprite对象
<p><span style="font-size:14px;">精灵类是Sprite,它的类图如下图所示:</span></p> <p style="text-align: center;"><span style="font-size:14px;"><img src="http://img.blog.csdn.net/20140516181640234" alt=""><br></span
1222 0
.NET数据库编程求索之路--7.使用ADO.NET实现(工厂模式-实现多数据库切换)(1)
7.使用ADO.NET实现(工厂模式-实现多数据库切换)(1)     7.1 解决方案框架 解决方案(.sln)包含以下几个项目: (1)类库项目HomeShop.DbUtility,数据访问实用工具; (2)类库项目HomeShop.
744 0
为内置对象添加原型方法
//为内置对象添加原型方法 var arr=new Array(10,20,30,40,50); arr.join("|"); console.dir(arr); var str=new String("哦,唛嘎的"); str.
529 0
.NET数据库编程求索之路--7.使用ADO.NET实现(工厂模式-实现多数据库切换)(4)
7.使用ADO.NET实现(工厂模式-实现多数据库切换)(4) 7.7 业务逻辑层HomeShop.BLL OrderBiz.cs View Code  1 using System; 2 using System.
775 0
VC与ADO数据库操作
      VC与ADO数据库操作     学研部的同志们,大家好! 想开一次学习会,实习时间冲突了,只好把文档发给大家看了。重点推荐李振龙的BMP读图教程! 尤其是大三GIS班的同志,注意了,可能实习用得上的!     一、ADO简介ADO(ActiveX Data Object)是...
1038 0
+关注
狂师
专注测试开发技术研究、实践、分享、交流
385
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载