香坂百合cos初音mkd008:使用ADO对象添加、修改、删除数据
来源:百度文库 编辑:中财网 时间:2024/04/20 21:13:07
使用ADO对象添加、修改、删除数据
字体大小:大 中 小 龚厚升 发表于 2010-08-05 13:51评论0条 阅读131次 使用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(); //向列表中插入数据
}
ADO.NET添加数据问题
ado对象模型和ADO数据控件的区别
ADO对象?
怎样使用ADO对象模块的CONNECTION对象打开数据库连接
求vb+ado+Access代码添加数据库数据的代码
添加.删除.修改问题
关于在vb里,用ado修改数据的问题~~~
ADO对象的修
怎样在DELPHI 三层中,对数据进行添加,修改,删除?
在ado数据对象中怎样可以获得已经打开的表的列名??
Delphi中是否可以使用ADO记录集对象?如何使用?
如何添加、修改datagrid的数据
在Execl中用VBA编程时,怎样添加ADO数据控件
关于VB6使用ADO对象连接MySQL数据库的具体语句
ASP 获取IP 添加删除数据问题!!!!!!!!!!!!!!!!!!!!!!!
VB访问SQL数据库, 如何使用添加数据时,可以在原础基上修改另保存,而是不清空所有数据重新输入
net user 如何添加、修改、删除帐号?
ADO Bookmark怎么使用
ADO进行动态数据连接
ado对象与ado控件的联系区别?
VB中向ADO数据库里添加记录的时候,如何让TextBox中显示列表中的数据?
使用fmm修改fm2006中的球员数据
vb 如何实现datagrid中数据的修改和添加
使用添加/删除程序用不了