QQ登录

只需一步,快速开始

259上位机VC MFC使用ODBC的CRecordSet类建立对话框数据库程序

[ 复制链接 ]

259上位机VC MFC使用ODBC的CRecordSet类建立对话框数据库程序

259上位机VC MFC使用ODBC的CRecordSet类建立对话框数据库程序

259上位机VC MFC使用ODBC的CRecordSet类建立对话框数据库程序
功能展示
MFC使用ODBC建立的都是基于单文件档的应用程序,且CRecordSet类与CRecordView类是联合使用,但总有些不够灵活,我们当前例程单独使用CRecordSet类建立基于对话框的数据库应用程序,效果如图,程序运行就初始化调用按钮<连接—数据源>建立与数据库的连接,点击基于按钮可以定位数据库位置;
要点提示
1.连接数据源要先定义类CRecordBase 的对象,随后 调用基成员函数OpenEx(),如我们当前例程就定义了一此类的实例  CDatabase m_DB;然后现连接数据源m_DB.OpenEx(_T("DSN=student"),0)
2.在一个数据源中有多个表,连接了数据源后,怎样选择我们想要的表呢?可以使用类CRecordSet的open()函数;如我们当前的例程m_Set->Open(CRecordset::dynaset,_T(“Select* from 表1”)),”表1”就是我们要打开的表的名称;
3.对表中字段的操作可以用CRecordSet的成员函数GetFieldValue(),函数有多个原型,具体可以翻阅MSDN手册,我们例程是通过这种形式m_Set->GetFieldValue((short)0,m_ID);获得字段的数据
实现功能
1.新建基于对话框的应用程序;
2.按照例程界面给主对话框添加三个编辑框ID分别 为IDC_STUID,IDC_STUNAME,IDC_STUGRADYEAR分别关联变量CString  m_ID;CString  m_Name; CString  m_Year;
3.再给主对话框添加两变量private:CDatabase m_DB;  CRecordset* m_Set; 及一头文件#include "Afxdb.h"//数据库支持
4.分别添加按钮控件<连接--数据源><第一条记录><下一条记录><上一条记录><最后一条记录>分别关联函数
  1. void CGkbc8Dlg::OnConnect()
  2. {
  3.     m_Set=new CRecordset(&m_DB);
  4.         if(!m_DB.OpenEx(_T("DSN=student"),0))//连接数据源
  5.         {
  6.                 AfxMessageBox("打开数据源失败!!");//报告错误
  7.                 return;
  8.         }
  9.         if(!m_Set->IsOpen())
  10.         {
  11.         m_Set->Open(CRecordset::dynaset,_T("Select * from 表1"));//选择数据表并打开
  12.         }
  13.     if(m_Set->IsEOF())//记录集是否为空
  14.         {
  15.                 AfxMessageBox("记录集没有记录");
  16.                 return;
  17.         }
复制代码
  1. m_Set->MoveFirst();//第一个记录
  2.         m_Set->GetFieldValue((short)0,m_ID);//把第0 列赋给此控件
  3.     m_Set->GetFieldValue((short)1,m_Name);//把第1 列赋给此控件
  4.     m_Set->GetFieldValue((short)2,m_Year);//把第2 列赋给此控件
  5.     UpdateData(FALSE);//更新对话框        
  6. }
  7. void CGkbc8Dlg::OnSelect()
  8. {
  9.         m_Set->MoveFirst();//第一个记录
  10.         m_Set->GetFieldValue((short)0,m_ID);//把第0 列赋给此控件
  11.     m_Set->GetFieldValue((short)1,m_Name);//把第1 列赋给此控件
  12.     m_Set->GetFieldValue((short)2,m_Year);//把第2 列赋给此控件
  13.     UpdateData(FALSE);//更新对话框        
  14. }
  15. void CGkbc8Dlg::OnRecordNext()
  16. {
  17.         m_Set->MoveNext();//下一个记录开始
  18.         m_Set->GetFieldValue((short)0,m_ID);//把第0 列赋给此控件
  19.     m_Set->GetFieldValue((short)1,m_Name);//把第0 列赋给此控件
  20.     m_Set->GetFieldValue((short)2,m_Year);//把第0 列赋给此控件
  21.     UpdateData(FALSE);//更新对话框        
  22. }
  23. void CGkbc8Dlg::OnRecordPrev()
  24. {
  25.         m_Set->MovePrev();//上一个记录开始
  26.         m_Set->GetFieldValue((short)0,m_ID);//把第0 列赋给此控件
  27.     m_Set->GetFieldValue((short)1,m_Name);//把第0 列赋给此控件
  28.     m_Set->GetFieldValue((short)2,m_Year);//把第0 列赋给此控件
  29.     UpdateData(FALSE);//更新对话框        
  30. }
  31. void CGkbc8Dlg::OnRecordLast()
  32. {
  33.         m_Set->MoveLast();//最后一个记录开始
  34.         m_Set->GetFieldValue((short)0,m_ID);//把第0 列赋给此控件
  35.     m_Set->GetFieldValue((short)1,m_Name);//把第0 列赋给此控件
  36.     m_Set->GetFieldValue((short)2,m_Year);//把第0 列赋给此控件
  37.     UpdateData(FALSE);//更新对话框        
  38. }
复制代码
OnConnect()函数可以选择性在程序初始化是调用一次
我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:259.上位机VC MFC使用ODBC的CRecordSet类建立对话框数据库程序.zip 
文件大小:32.35 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索