我最近在用MFC编写学生成绩管理系统(对话框程序)。需要在登录页面自己成绩管理页面用到数据库。可是

我最近在用MFC编写学生成绩管理系统(对话框程序)。需要在登录页面自己成绩管理页面用到数据库。可是,第1张

使用ADO连接数据

1、导入存放ADO组件的库文件。在stdafx.h文件中加入下列语句:

#import "c:\program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF","EndOfFile") rename("BOF","FirstOfFile")

#include "icrsint.h"

ADO组件存放在msado15.dll文件中,导入该文件时,要重新定义EOF和BOF,以便与VC中ios.h、stdio.h中的EOF和BOF区别开来。

icrsint.h文件中包含了ADO控件的声明。

2、在应用程序类的InitInstance函数中加入:

AfxOleInit()//初始化COM组件环境

3、为视图类增加成员:

_ConnectionPtr m_myConnection//连接对象

_RecordsetPtr m_myRSStudent //记录集

_RecordsetPtr m_myRS1//记录集

4、在修改视图类的OnInitUpdate函数:

HRESULT hr

try{hr = m_myConnection.CreateInstance("ADODB.Connection")//创建连接实例if(SUCCEEDED(hr))hr =

m_myConnection->

Open("Provider=Microsoft.Jet.OLEDB.4.0

Data Source=db1.mdb", "", "",adModeUnknown)

//打开连接,连接到数据库}

catch(_com_error e){

CString errormessage

errormessage.Format("Connection failed\nInformation:%s",e.ErrorMessage())

AfxMessageBox(errormessage)}

m_myRSStudent.CreateInstance("ADODB.Recordset")

m_myRSStudent->Open(“select * from student”, //获取数据的SQL语句m_myConnection.GetInterfacePtr(), //记录集获取数据时使用的连接adOpenDynamic,adLockOptimistic,adCmdText)//动态集、优化锁、SQL命令形式

执行完这段代码后,数据库表student中的数据被提取到m_myRS所管理的内存区域。m_myRS1.CreateInstance("ADODB.Recordset")

m_myRS1->Open("select * from Class",

m_myConnection.GetInterfacePtr(),

adOpenDynamic,

adLockOptimistic,

adCmdText)

_variant_t vName//变体数据类型,可以存放任意类型的数据

while(!m_myRS1->EndOfFile)

{vName = m_myRS1->GetCollect("ClassName")//获取字段内容m_TreeView.InsertItem((_bstr_t)vName)//填充TreeView

m_myRS1->MoveNext()}

m_ListView.SetExtendedStyle(LVS_EX_FULLROWSELECT)

m_ListView.InsertColumn(0,"学号",LVCFMT_CENTER,60)

m_ListView.InsertColumn(1,"姓名",LVCFMT_CENTER,60)

m_ListView.InsertColumn(2,"数学",LVCFMT_CENTER,60)

m_ListView.InsertColumn(3,"英语",LVCFMT_CENTER,60)

m_ListView.InsertColumn(4,"计算机",LVCFMT_CENTER,60)}

1.可以使用ADO连接数据库,具体的知识还比较的多,所以建议随便找本mfc的书本看看,可以直接使用mfc向导里的选项,非常方便的。

2.使用odbc连接数据库,较于复杂,而且速度明显无ado快(顺便吐槽一下odbc在windows程序开发中就是鸡肋,从来都很少有人用的。)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9678138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存