使用ADO对象进行数据库开发实例
来源:互联网 发布:网络贩毒暗语 编辑:程序博客网 时间:2024/04/27 23:07
1、 创建一个MFC对话框工程AdoObject,并设计如下对话框界面。
2、关联变量:
3、在stdafx.h引入ADO库定义文件,包含头文件。
#prgama warning (disable : 4146)#include "icrsint.h"#import "C:\Program Files\Common Files\System\ado\msado15.dll" \ no_namespace rename("EOF","EndOfFile") rename("BOF","FirstOfFile")
4、在AdoObject.cpp中,初始化COM库
BOOL AdoObjectApp::InitInstance(){::CoInitialize(NULL); /*if(!AfxOleInit()){AfxMessageBox("COM Error!");return FALSE;}*/AfxEnableControlContainer();//......}
5、为对话框类添加成员:
_ConnectionPtr m_pConnection;//数据库连接指针(对象)_RecordsetPtr m_pRecordSet;//记录集指针(对象)_variant_t vFieldValue;//字段对应的记录值CString strFieldValue;//字段对应的记录值void DisplayFields();//显示记录到绑定的对话框控件上
6、在对话框类的OnInitDialog中添加如下代码,实现数据库连接:
// 数据库连接m_pConnection.CreateInstance(_uuidof(Connection));m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = student.mdb;","","",-1);// 打开数据库记录m_pRecordSet.CreateInstance(_uuidof(Recordset));m_pRecordSet->Open("select * from stu_info",m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, adCmdText);// 移动游标到打开的第一条数据库记录m_pRecordSet->MoveFirst(); DisplayFields();//显示表中的记录信息
7、添加对话框成员函数DisplayFields:负责显示对应表中的记录信息。
void CAdoObjectDlg::DisplayFields(){vFieldValue= m_pRecordSet->GetCollect("学号");strFieldValue = (char*)_bstr_t(vFieldValue);m_sNo = strFieldValue;vFieldValue.Clear();vFieldValue= m_pRecordSet->GetCollect("姓名");strFieldValue=(char*)_bstr_t(vFieldValue);m_sName = strFieldValue;vFieldValue.Clear();vFieldValue= m_pRecordSet->GetCollect("出生日期");strFieldValue=(char*)_bstr_t(vFieldValue);m_sBirthday = strFieldValue;vFieldValue.Clear();vFieldValue= m_pRecordSet->GetCollect("地址");strFieldValue=(char*)_bstr_t(vFieldValue);m_sAddress = strFieldValue;vFieldValue.Clear();vFieldValue= m_pRecordSet->GetCollect("四级成绩");strFieldValue=(char*)_bstr_t(vFieldValue);m_sEnglish = strFieldValue;vFieldValue.Clear();vFieldValue= m_pRecordSet->GetCollect("VC成绩");strFieldValue=(char*)_bstr_t(vFieldValue);m_sVC = strFieldValue;vFieldValue.Clear();UpdateData(FALSE);}
8、按钮响应函数
void CAdoTestDlg::OnButton1() // 向后{// TODO: Add your control notification handler code herem_pRecordSet->MoveNext();if(m_pRecordSet->EndOfFile==VARIANT_FALSE)DisplayFields();else{m_pRecordSet->MovePrevious();AfxMessageBox("已经到最后一条记录!");}}void CAdoTestDlg::OnButton2() // 向前{m_pRecordSet->MovePrevious();if(m_pRecordSet->FirstOfFile==VARIANT_FALSE)DisplayFields();else{m_pRecordSet->MoveNext();AfxMessageBox("已经到第一条记录!");}}void CAdoTestDlg::OnButton3() //添加{// TODO: Add your control notification handler code hereUpdateData(TRUE);m_pRecordSet->AddNew();m_pRecordSet->PutCollect("学号",_variant_t(m_Sno));m_pRecordSet->PutCollect("姓名",_variant_t(m_Name));m_pRecordSet->PutCollect("出生日期",_variant_t(m_birthday));m_pRecordSet->PutCollect("四级成绩",_variant_t(m_EnglishGrade));m_pRecordSet->PutCollect("VC成绩",_variant_t(m_ComputerGrade));m_pRecordSet->Update();//存入数据库m_sNo = " ";m_sName= " ";m_sBirthday = " ";m_sEnglish = " ";m_sVC = " ";UpdateData(FALSE);}void CAdoTestDlg::OnButton4() {// TODO: Add your control notification handler code here.;m_pRecordSet->Delete(adAffectCurrent);m_Sno = " ";m_Name= " ";m_birthday = " ";m_EnglishGrade = " ";m_ComputerGrade = " ";UpdateData(FALSE);}
9、程序运行结果如下:
- 使用ADO对象进行数据库开发实例
- MFC使用ADO对象开发数据库应用程序
- 在mfc使用ADO对象进行数据库的交互
- ADO进行数据库开发(转贴)
- vc使用ADO进行数据库开发(一)
- vc使用ADO进行数据库开发(二)
- 使用ADO封装类的数据库程序开发实例
- 使用ADO封装类的数据库程序开发实例
- 使用ADO封装类的数据库程序开发实例(上)
- 使用ADO封装类的数据库程序开发实例
- 使用ADO封装类的数据库程序开发实例
- 使用ADO封装类的数据库程序开发实例(上)
- 使用ADO封装类的数据库程序开发实例(下)
- 使用ADO封装类的数据库程序开发实例
- 在 Visual C++ 开发环境下使用ADO来进行数据库应用程序开发
- VC中使用ADO进行数据库操作
- VC中使用ADO进行数据库操作
- VC中使用ADO进行数据库操作
- DirectX、Direct3D和OpenGL的区别
- Script:利用外部表实现SQL查询Oracle告警日志Alert.log
- 一些链接
- resolveActivity和queryIntentActivities!!!
- VC+AE开发遇到的问题及其解决之道
- 使用ADO对象进行数据库开发实例
- 音量和分贝(四)- 音量调整
- linux c编程操作数据库(sqlite3应用)
- Servlet方法说明
- jquery 实现的省市区级联,无ajax
- 进程与线程的区别(转)
- VC++6.0 Win32 Application方式 添加窗体方法
- 使用myeclipse的反向工程来生成相应的hibernate映射文件和POJO类
- JS禁止頁面回退按鈕