第12章 数据库编程.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第12章 数据库编程.ppt》由会员分享,可在线阅读,更多相关《第12章 数据库编程.ppt(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1212章章 数据库编程数据库编程 本章要点本章要点本章要点本章要点通过本章的学习,使读者:通过本章的学习,使读者:通过本章的学习,使读者:通过本章的学习,使读者:使用使用使用使用ODBCODBC类进行数据库编程类进行数据库编程类进行数据库编程类进行数据库编程 自动注册数据源的自动注册数据源的自动注册数据源的自动注册数据源的ODBCODBC数据库编程数据库编程数据库编程数据库编程 数据库表记录的添加、删除和修改等编辑功能数据库表记录的添加、删除和修改等编辑功能数据库表记录的添加、删除和修改等编辑功能数据库表记录的添加、删除和修改等编辑功能 数据记录查询和排序数据记录查询和排序数据记录查询和
2、排序数据记录查询和排序12.1 学生成绩管理系统学生成绩管理系统12.1.1 系统介绍系统介绍图图图图12-112-1是一个班级学生成绩管理系统,每个班有是一个班级学生成绩管理系统,每个班有是一个班级学生成绩管理系统,每个班有是一个班级学生成绩管理系统,每个班有3 3个表:学生成绩表、各科成绩表和任课老师表。个表:学生成绩表、各科成绩表和任课老师表。个表:学生成绩表、各科成绩表和任课老师表。个表:学生成绩表、各科成绩表和任课老师表。具有以下功能:具有以下功能:具有以下功能:具有以下功能:(1)(1)数据库表记录的浏览;数据库表记录的浏览;数据库表记录的浏览;数据库表记录的浏览;(2)(2)数据
3、库表记录的编辑:添加、删除和修改;数据库表记录的编辑:添加、删除和修改;数据库表记录的编辑:添加、删除和修改;数据库表记录的编辑:添加、删除和修改;(3)(3)记录查寻:按查询条件浏览记录;记录查寻:按查询条件浏览记录;记录查寻:按查询条件浏览记录;记录查寻:按查询条件浏览记录;(4)(4)记录排序:在学生成绩记录表中,单击字段名列表头,记录排序:在学生成绩记录表中,单击字段名列表头,记录排序:在学生成绩记录表中,单击字段名列表头,记录排序:在学生成绩记录表中,单击字段名列表头,可按升序或降序交替排序记录。可按升序或降序交替排序记录。可按升序或降序交替排序记录。可按升序或降序交替排序记录。12
4、.2 ODBC类的编程基础类的编程基础12.2.1 ODBC的结构的结构ODBCODBC由由由由4 4个部分组成,分别是个部分组成,分别是个部分组成,分别是个部分组成,分别是(1)(1)应用程序(应用程序(应用程序(应用程序(ApplicationApplication)(2)ODBC(2)ODBC管理器(管理器(管理器(管理器(ODBC ManageODBC Manage)(3)ODBC(3)ODBC驱动程序(驱动程序(驱动程序(驱动程序(ODBC DriversODBC Drivers)(4)(4)数据源(数据源(数据源(数据源(Data SourcesData Sources)应用程序应
5、用程序应用程序应用程序 ODBCODBC管理器管理器管理器管理器 ODBCODBC驱动程序驱动程序驱动程序驱动程序数据库数据库数据库数据库12.2.2 MFC提供的提供的ODBC类类CDatabaseCDatabase(数据库类)(数据库类)(数据库类)(数据库类)CRecordsetCRecordset(记录集类)(记录集类)(记录集类)(记录集类)CRecordViewCRecordView(可视记录集类)(可视记录集类)(可视记录集类)(可视记录集类)CDBExceptionCDBException(异常类)(异常类)(异常类)(异常类)CFilelExchangeCFilelExcha
6、nge(数据交换类)(数据交换类)(数据交换类)(数据交换类)12.2.3 应用应用ODBC编程编程1.ODBC类编程的一般步骤类编程的一般步骤使用使用使用使用ODBCODBC类进行编程,一般步骤如下:类进行编程,一般步骤如下:类进行编程,一般步骤如下:类进行编程,一般步骤如下:(1)(1)连接数据源。连接数据源。连接数据源。连接数据源。(2)(2)创建并执行创建并执行创建并执行创建并执行SQLSQL语句。语句。语句。语句。(3)(3)检查结果记录。检查结果记录。检查结果记录。检查结果记录。(4)(4)断开数据源。断开数据源。断开数据源。断开数据源。2.数据记录的基本操作数据记录的基本操作(1
7、)增加记录增加记录m_pSetm_pSet-AddNewAddNew();();/增加记录增加记录增加记录增加记录 /输入新的字段值输入新的字段值输入新的字段值输入新的字段值m_pSetm_pSet-Update();-Update();/将新记录存将新记录存将新记录存将新记录存入数据库入数据库入数据库入数据库m_pSetm_pSet-RequeryRequery()()/重建记录集重建记录集重建记录集重建记录集 (2)删除记录删除记录 m_pSetm_pSet-Delete();-Delete();/删除记录删除记录删除记录删除记录m_pSetm_pSet-RequeryRequery();
8、();/重建记录集重建记录集重建记录集重建记录集(3)修改记录修改记录m_pSetm_pSet-Edit();-Edit();/修改当前记录修改当前记录修改当前记录修改当前记录 /修改当前记录字段值修改当前记录字段值修改当前记录字段值修改当前记录字段值m_pSetm_pSet-Update();-Update();/将新记录存入数据库将新记录存入数据库将新记录存入数据库将新记录存入数据库m_pSetm_pSet-RequeryRequery()()/重建记录集重建记录集重建记录集重建记录集12.2.4 创建数据源(创建数据源(DSN)1用用ODBC数据源管理器数据源管理器,创建数据源创建数据源
9、2.在应用程序中注册数据源在应用程序中注册数据源SQLConfigDataSource(NULLSQLConfigDataSource(NULL,/不需要弹出对话框;不需要弹出对话框;不需要弹出对话框;不需要弹出对话框;ODBC_ADD_DSNODBC_ADD_DSN,/添加数据源;添加数据源;添加数据源;添加数据源;“Microsoft Access Driver(*.Microsoft Access Driver(*.mdbmdb)”,)”,/驱动程序名;驱动程序名;驱动程序名;驱动程序名;“DSN=MyStudentOdbc0”DSN=MyStudentOdbc0”/数据源名称;数据源名
10、称;数据源名称;数据源名称;“Description=This is a sample0”Description=This is a sample0”/数据源的说明;数据源的说明;数据源的说明;数据源的说明;“FileTypeFileType=Microsoft Access0”=Microsoft Access0”/数据源文件类型说数据源文件类型说数据源文件类型说数据源文件类型说明;明;明;明;“DBQ=D:MyVCMyODBC.mdb0”DBQ=D:MyVCMyODBC.mdb0”/数据源文件绝对路经数据源文件绝对路经数据源文件绝对路经数据源文件绝对路经DEFAULTDIR=D:DEFAU
11、LTDIR=D:/默认目录为默认目录为默认目录为默认目录为D:D:12.3 创建创建“学生成绩管理系统学生成绩管理系统”应用程序应用程序12.3.1 创建工程创建工程12.3.2 界面设计界面设计12.3.3 为控件引入变量为控件引入变量12.3.4 实现班级表的选择实现班级表的选择12.4 定义操作记录集类的对象定义操作记录集类的对象12.4.112.4.1创建创建创建创建CMyRecordSetCMyRecordSet类类类类创建一个创建一个创建一个创建一个CRecordsetCRecordset类的派生类类的派生类类的派生类类的派生类CMyRecordSetCMyRecordSet,用于
12、操作,用于操作,用于操作,用于操作数据库的学生成绩表。数据库的学生成绩表。数据库的学生成绩表。数据库的学生成绩表。12.4.312.4.3创建创建创建创建CMyTeRecordSetCMyTeRecordSet类类类类创建一个创建一个创建一个创建一个CRecordsetCRecordset类的派生类类的派生类类的派生类类的派生类CMyTeRecordSetCMyTeRecordSet,用来,用来,用来,用来操作数据库的任课教师表操作数据库的任课教师表操作数据库的任课教师表操作数据库的任课教师表12.4.212.4.2创建创建创建创建CMyObRecordSetCMyObRecordSet类类类
13、类创建一个创建一个创建一个创建一个CRecordsetCRecordset类的派生类类的派生类类的派生类类的派生类CMyObRecordSetCMyObRecordSet,用于,用于,用于,用于操作数据库的学生科目表。操作数据库的学生科目表。操作数据库的学生科目表。操作数据库的学生科目表。12.4.4 定义操作记录集类的对象定义操作记录集类的对象(1)(1)在在在在MyOdbcDlg.hMyOdbcDlg.h文件中,添加如下包含文件:文件中,添加如下包含文件:文件中,添加如下包含文件:文件中,添加如下包含文件:#include#include MyRecordSet.hMyRecordSet.
14、h(2)(2)在在在在CMyOdbcDlgCMyOdbcDlg类中,定义操作类中,定义操作类中,定义操作类中,定义操作ODBCODBC记录集类的对象,记录集类的对象,记录集类的对象,记录集类的对象,即添加语句:即添加语句:即添加语句:即添加语句:CMyRecordSetCMyRecordSet m_Setm_Set;/用于操作数据库成绩表用于操作数据库成绩表用于操作数据库成绩表用于操作数据库成绩表CMyObRecordSetCMyObRecordSet m_bSetm_bSet;/用于操作数据库科目表用于操作数据库科目表用于操作数据库科目表用于操作数据库科目表CMyTeRecordSetCMy
15、TeRecordSet m_tSetm_tSet;/用于操作数据库任课教师表用于操作数据库任课教师表用于操作数据库任课教师表用于操作数据库任课教师表12.5注册数据源,连接数据库注册数据源,连接数据库1编程要点编程要点(1)(1)在项目工程的在项目工程的在项目工程的在项目工程的StdAfx.hStdAfx.h文件中,添加支持数据库和自动注文件中,添加支持数据库和自动注文件中,添加支持数据库和自动注文件中,添加支持数据库和自动注册数据源库函数所需的头文件:册数据源库函数所需的头文件:册数据源库函数所需的头文件:册数据源库函数所需的头文件:#include#include#include#incl
16、ude (2)(2)选择数据库文件,调用选择数据库文件,调用选择数据库文件,调用选择数据库文件,调用SQLConfigDataSourceSQLConfigDataSource()()函数函数函数函数,注注注注册数据源。册数据源。册数据源。册数据源。(3)(3)在在在在CMyOdbcDlgCMyOdbcDlg类中,添加类中,添加类中,添加类中,添加CDatabaseCDatabase 类对象类对象类对象类对象(4)(4)利用利用利用利用CDatabaseCDatabase 类的类的类的类的OpenExOpenEx函数建立与数据库的连接,函数建立与数据库的连接,函数建立与数据库的连接,函数建立与
17、数据库的连接,并捕获异常。并捕获异常。并捕获异常。并捕获异常。2程序实现程序实现添加添加添加添加“连接数据库连接数据库连接数据库连接数据库”按钮的按钮的按钮的按钮的BN_CLICKEDBN_CLICKED消息响消息响消息响消息响应函数,在消息响应函数中,编写代码实现如下功能应函数,在消息响应函数中,编写代码实现如下功能应函数,在消息响应函数中,编写代码实现如下功能应函数,在消息响应函数中,编写代码实现如下功能:选择数据库文件选择数据库文件选择数据库文件选择数据库文件;调用调用调用调用SQLConfigDataSourceSQLConfigDataSource()()函数函数函数函数,注册数据注
18、册数据注册数据注册数据源源源源;连接数据库。连接数据库。连接数据库。连接数据库。12.6 实现数据库记录的显示功能实现数据库记录的显示功能12.6.1 字段名的获取与显示字段名的获取与显示1编程要点编程要点(1)(1)调用调用调用调用CRecordsetCRecordset类的类的类的类的GetODBCFieldInfoGetODBCFieldInfo()()成员函数获取表信息成员函数获取表信息成员函数获取表信息成员函数获取表信息CODBCFieldInfoCODBCFieldInfo Info;Info;/定义结构定义结构定义结构定义结构CODBCFieldInfoCODBCFieldInf
19、o体变量体变量体变量体变量InfoInfoOpen(AFX_DB_USE_DEFAULT_TYPE,TableNameOpen(AFX_DB_USE_DEFAULT_TYPE,TableName););/打开数据库表,打开数据库表,打开数据库表,打开数据库表,读取字段名信息存储在结构变量读取字段名信息存储在结构变量读取字段名信息存储在结构变量读取字段名信息存储在结构变量InfoInfo中中中中GetODBCFieldInfo(intGetODBCFieldInfo(int nItemnItem,CODBCFieldInfoCODBCFieldInfo Info);Info);Close();C
20、lose();/关闭记录集关闭记录集关闭记录集关闭记录集(2)(2)从结构变量从结构变量从结构变量从结构变量InfoInfo中提取指定字段名中提取指定字段名中提取指定字段名中提取指定字段名CStringCString m_sNamem_sName=Info.m_strNameInfo.m_strName;(3)(3)调用调用调用调用ClistCtrlClistCtrl类的类的类的类的InsertColumnInsertColumn()成员函数,将字段名插入()成员函数,将字段名插入()成员函数,将字段名插入()成员函数,将字段名插入ListList控件的表头显示控件的表头显示控件的表头显示控件
21、的表头显示InsertColumn(intInsertColumn(int nItemnItem,LPTSTR,LPTSTR lpszText,LVCFMT_LEFT,intlpszText,LVCFMT_LEFT,int nWidthnWidth);12.6.2 打开打开ODBC记录集记录集 void void CMyOdbcDlg:SelectCMyOdbcDlg:Select()()if(m_Set.IsOpen()m_Set.Closeif(m_Set.IsOpen()m_Set.Close();();if(m_bSet.IsOpen()m_bSet.Closeif(m_bSet.Is
22、Open()m_bSet.Close();();if(m_tSet.IsOpen()m_tSet.Closeif(m_tSet.IsOpen()m_tSet.Close();();/打开学生成绩表记录集打开学生成绩表记录集打开学生成绩表记录集打开学生成绩表记录集 CStringCString strstr;str.Format(%sSTUDENT,m_Getstringstr.Format(%sSTUDENT,m_Getstring););m_Set.Open(AFX_DB_USE_DEFAULT_TYPE,strm_Set.Open(AFX_DB_USE_DEFAULT_TYPE,str);
23、);/打开科目表记录集打开科目表记录集打开科目表记录集打开科目表记录集 str.Format(%sOBJECT,m_Getstringstr.Format(%sOBJECT,m_Getstring););m_bSet.Open(AFX_DB_USE_DEFAULT_TYPE,strm_bSet.Open(AFX_DB_USE_DEFAULT_TYPE,str););/打开任课教师表记录集打开任课教师表记录集打开任课教师表记录集打开任课教师表记录集 str.Format(%sTECHER,m_Getstringstr.Format(%sTECHER,m_Getstring););m_tSet.O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第12章 数据库编程 12 数据库 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内