我最近在用MFC编写学生成绩管理系统(对话框程序)。需要在登录页面自己成绩管理页面用到数据库。可是
我最近在用MFC编写学生成绩管理系统(对话框程序)。需要在登录页面自己成绩管理页面用到数据库。可是没有接触过。请问如果只是满足我这个程序的话,我应该用什么数据库写,需要学...
我最近在用MFC编写学生成绩管理系统(对话框程序)。需要在登录页面自己成绩管理页面用到数据库。可是没有接触过。请问如果只是满足我这个程序的话,我应该用什么数据库写,需要学什么知识(最好有代码)。因为时间很紧,所以我想在几个小时里把所需要的数据库知识学会。求大神帮忙。
展开
2个回答
展开全部
使用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组模携败件隐伏的库文件旦颤。在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);}
追问
请问我用Access数据库还如何设计表?我首先要在登录时用数据库检查用户名和密码。其次登录后还要把学生成绩显示出来。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询