1、摘 要 随着社会的发展与科技的全面进步,使得人们越来越向信息化、数字化发展,管理信息系统(MIS)是一个由人、计算机等组成的能进行信息收集、传递、加工、维护和实用的系统,必然会代替过去大量的、繁琐的手工操作。对于学校来说,对学生的个各种信息进行统计并显示是非常重要的,本文通过Visual C+6.0的编程环境编写班级信息管理系统,利用Microsoft SQL server 2005数据库系统编写数据表,采用ODBC数据库访问技术,用模块化设计方式将系统各个功能模块层层分解,设计出系统的模块化结构,并根据系统的具体要求和需要实现功能,详细的定义了各个模块的具体功能。开发主要包括后期数据库的建立
2、和维护以及前期应用程序的开发两方面,实现了学生信息的创建及学生成绩、违纪情况的输入、浏览、维护和统计,使得系统具有功能强大,界面友好的特点。关键词:信息管理;Visual C+6.0;SQL server 2005;ODBC目 录第一章 引 言5第二章 系统设计62.1 需求分析62.2系统目标62.3 可行性分析7第三章 运行环境及系统技术简介73.1 Visual C+ 6.0简介73.2 Microsoft SQL Server 2005技术简介73.3 SQL数据库的优点 83.4 ODBC技术简介93.5 C+语言简介9第四章 系统结构功能分析104.1班级信息管理系统的功能结构10
3、4.2学生管理系统的业务流程图114.3数据库设置114.3.1.数据库分析114.3.2.数据库概念设置124.3.3.数据库设计逻辑结构134.4.公共类的设置14第五章 主体窗设计及模块功能实现155.1主窗体设计155.2科目信息管理模块设计165.2.1科目信息管理模块概述165.2.2科目信息管理技术分析165.2.3科目信息管理实现过程175.3学生信息管理模块设计245.3.1学生信息管理模块概述245.3.2学生信息管理实现过程255.4学生成绩录入模块设置315.4.1学生成绩录入模块概述315.4.2学生成绩录入技术分析315.4.3学生成绩录入实现过程325.5 学生违
4、纪查询模块设置355.5.1学生违纪查询模块概述355.5.2学生违规查询技术分析365.5.3学生违规查询实现过程365.6学生成绩报表打印模块设计41第六章.项目文件清单45第七章软件测46结束语47致谢47参考文献48 IV第一章 引 言 人类已经进入了一个科学技术突飞猛进的时代,经济知识和信息产业日渐重要。信息技术和网络的迅猛发展和广泛应用,对社会的各个领域产生了深刻的影响,极大地改变了人们的工作、学习和交流方式。信息的获取、交流和应用能力,已经成为人们最重要的能力之一。在知识经济占主导地位的将来,国家综合国力和国际竞争能力越来越取决于教育发展、科学技术和知识创新的水平,教育在经济和社
5、会发展过程中呈现出越来越突出的重要作用。学生信息管理系统是一个教育代为不可或缺的部分,他的内容对于学校的决策者和管理者来说都是至关重要的。这就要求学生信息管理系统拥有强大的功能,能够提供用户足够的信息和快捷的查询你手段。一直以来,人们实用传统人工的方法管理学生信息,这种管理方式存在着许多缺点,入效率低、保密性差、数据容易出错等。此外,时间一长将产生大量冗余的文件和数据,这对于查找、更新和维护都带来了不少的困难。 科学技术的不断发展和提高计算机科学日渐成熟,其强大的功能人们已经有了深刻的认识。作为计算机应用的一部分,使用计算机对学生信息管理系统进行信息管理。有着手工管理无法比拟的优点,如检索迅速
6、、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大提高学生信息管理系统管理的效率,也是教育单位的科学化、正规化管理,与世界接轨的重要条件。因此,开发一套这样的管理系统是很有必要的。第二章 系统设计本班级信息管理系统可以说是一个综合性的学校学生管理系统,它集成了学生学籍管理系统、学生班级管理系统、学生成绩管理系统和学生选课管理系统多种功能,因而具有较强的实用行和先进性。2.1 需求分析 通过对学生管理过程的研究和分析,要求本系统应该具有以下功能。(1)学生信息录入。(2)学生成绩录入。(3)成绩等级设置。(4)学生违规处理。(5)学生成绩排行。(6)学生信息查询。(7)
7、学生成绩查询、打印。2.2系统目标 学生信息管理系统以实现学生日常的信息管理为设计目标,加以强大的数据库管理功能,可以方便对学生信息进行管理,大大提高了学校日常工作的效率。本系统在设计时应该满足以下几点:1.采用人机对话的操作方式,信息查询灵活、方便、快捷、准确,数据存储安全可靠。2.对学生信息的操作简单,可以方便地进行添加、修改和删除操作。3.可以根据需要灵活地调整科目信息。4.可以录入教师信息,方便任命班级的班主任。5.编辑考试类别,更灵活地对学生测验。6.打印学生成绩报表,更直观地了解学生成绩。7.学生违规处理,对违反校规的学生进行处罚。8.对用户输入的数据,系统进行严格地数据检验,尽可
8、能排除人为错误。2.3 可行性分析 由于本系统的管理对象单一,都是在校学生,且每个数据内容具有较强的关联性涉及的计算过程不是很复杂。因此,比较适合采用数据库管理。而且学校用于学生管理计算机在存储量、速度方面都能满足数据库运行要求。另一方面此小型管理系统从投入的人力、财力与物力来讲是非常之小的。由于有指导老师的指导和相关参考文献,特别是网上资料以及参考其他程序的功能,因此完全可以实现。 第三章 运行环境及系统技术简介 本系统是基于Visual C+ 6.0 编程环境而开发的,利用Microsoft SQL Server 2005 建立数据库,通过ODBC访问数据库。 3.1 Visual C+
9、6.0简介 本班级信息管理系统是基于Visual C+ 6.0环境而进行开发的。Visual C+ 6.0 是Microsoft Visual Studio 6.0 系列组件之一,是微软公司推出的一款C+集成开发工具。Visual C+是现在最为通用的开发工具之一,它提供了相当齐备类库和友好的界面,为数据库开发提供了比较好的开发环境。提供了多种数据库访问技术,可视化的编程环境,使操作更加直观简便。因此借助Visual C+可以开发出功能强大、速度快、应用广泛并且占用资源少的中小型数据库信息管理系统。3.2 Microsoft SQL Server 2005技术简介 本系统以Microsoft
10、SQL Server 2005为后台数据库,Microsoft SQL Server 2005就是关系数据库开发工具,它是一款比较方便易用的数据库系统。数据库能汇集各种信息以供查询、存储和检索。所谓的数据库就是由一些有意义和有关系的数据(Data)组成的,一个数据库中包含了许多条记录(Record),而每条记录是由多个字段(Field)所做成的,不同的字段存放不同的数据。所以数据库的严格定义是一组相关记录的集合。而字段则是最基本的数据项,也是数据库中最小的单位。在计算机中用来帮助我们管理数据库系统,我们称之为数据库管理系统DataBase Management System(DBMS)。数据库
11、管理系统是架构在一个或多个数据库之上的,并针对数据库中的数据进行管理运用。3.3 SQL数据库的优点 1、存储方式简单,易于维护管理。SQL管理的对象有表、查询、窗体、报表、页、宏和模块,以上对象都存放在后缀为.mdf或.ldf的数据库文件中,便于用户的操作和管理。 2、面向对象 SQL是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。它将一个应用系统当作是由一系列对象组成的,对每个对象它都定义一组方法和属性,以定义该对象的行为和外围用户还可以按需要给对象扩展方法和属性。通过对象的方法、属性完成数据库的操作和管理,极大地简化了用
12、户的开发工作。同时,这种基于面向对象的开发方式使得开发应用程序更为简便。 3、界面友好、易操作。SQL是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。系统还提供了表生成器、查询生成器、报表设计器以及数据库向导、表向导、查询向导、窗体向导、报表向导等工具,使得操作简便,容易使用和掌握。 4、集成环境、处理多种数据信息。SQL基于Windows操作系统下的集成开发环境。该环境集成了各种向导和生成器工具,极大地提高了开发人员的作效率,使得建立数据库、创建表、设计用户界面、设计数据查询、报表打印等可以方便有序地进行。 5、SQL支持OD
13、BC开发数据库互连Open Data Base Connectivity。利用SQL强大的DDE(动态数据交换)和OLE(对象的联接和嵌入)特性,可以在一个数据表中嵌入位图、声音、Excel表格、Word文档,还可以建立动态的数据库报表和窗体等。SQL还可以将程序应用于网络,并与网络上的动态数据相联接。利用数据库访问对象生成HTML文件,轻松构建Internet/Intranet的应用。 6、支持广泛、易于扩展、弹性较大,能够将通过链接表的方式来打开EXCEL文件、格式化文本文件等。这样就可以利用数据库的高效率对其中的数据进行查询、处理。还可以通过以Access作为前台客户端,以SQL Ser
14、ver作为后台数据库的方式,如ADP开发大型数据库应用系统。总之,SQL是一个既可以只用来存放数据的数据库,也可以作为一个客户端开发工具来进行数据库应用系统开发,即可以开发方便易用的小型软件,也可以用来开发大型的应用系统。3.4 ODBC技术简介开放式数据库互连(Open-DataBase-Connectivity,简称ODBC)。ODBC的基本思想是为用户提供简单、标准、透明的数据库连接的公共编程接口,开发厂商根据ODBC的标准去实现底层的驱动程序,这个驱动对用户是透明的,并允许根据不同的DBMS采用不同的技术加以优化实现,概括起来,ODBC具有以下灵活的特点:1. 使用户程序有很高的互操作
15、性,相同的目标代码适用于不同的DBMS;2. 由于ODBC的开放性,它为程序集成提供了便利,为客户机/服务器结构提供了技术支持;3. 由于应用与底层网络环境和DBMS分开,简化了开发维护上的困难。3.5 C+语言简介 C+语言是一种优秀的面向对象程序设计语言。它在C语言的基础上发展而来,但它比C语言更容易为人们学习和掌握。C+以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用。面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞跃,C+完美地体现了面向对象的各种特性。 C+所提供的抽象机制能够被应用于那些对效率和可适应性具有极高要求的程序设计任务之中。 C+的一个目标就是提供
16、更易用并具有一定承受能力的设计思想和程序设计技术,进一步提高程序的质量。然而,C+的设计目标总还是在于要支持一定范围内的各种程序设计风格和设计思想。这与一般在语言设计方面的观点形成一定对比。一般在语言设计上总是试图将所有系统内建于单独一个被重点支持的、带有强制性的程序设计风格之中或称典范(paradigm)。 C+提供了class、namespace和访问控制,使设计决策的各异化(locality)成为可能。第四章 系统结构功能分析4.1班级信息管理系统的功能结构班级信息管理系统的功能结构如图4.1所示学生管理系统学生管理 基本信息管理查询管理班级信息管理班级科目管理教师信息管理科目信息管理学
17、生成绩报表学生违纪查询成绩等级设置学生成绩查询学生违纪处理学生成绩录入学生信息管理考试类别管理科室信息管理帮助系统管理退出系统关于系统用户管理系统帮助图4.1 学生管理系统功能结构图4.2学生管理系统的业务流程图管理员基础信息设置学生信息录入学生成绩设置学生违纪处理学生违纪查询学生成绩录入学生成绩查询 图4.2 学生管理业务流程图4.3数据库设置4.3.1.数据库分析 在学生管理系统中由于涉及大量的学生信息,因此在设计该系统时选择使用了Microsoft SQL Server 2005来满足系统的要求,数据库的名称是db_student,在数据库中创建11张表用于存储不同信息。4.3.2.数据
18、库概念设置 根据前面的需求分析和系统设计规划,本系统中使用的数据库实体对象分别为管理员实体、教师信息实体、学生信息实体、违纪信息实体、成绩段实体和成绩信息实体等,下面将给出几个关键实体的ER图。 管理员实体:包括管理员名称和管理员密码。管理员实体E_R如图4.3所示 教师信息实体:教师信息实体包括教师编号实体、教师姓名实体、教师性别实体、所在办公室实体、教师文凭实体和教师职称实体,教师信息实体E_R图如4.4所示管理员密码所在办公室教室性别教师姓名教师信息管理员教师职称管理员名称教师文凭教师编号图4.3 管理员实体E_R图 图4.4 教师信息实体E_R图学生信息实体:学生信息实体包括学生编号实
19、体、学生姓名实体、学生年龄实体、学生性别实体、联系电话实体、家庭地址实体和所在班级实体。学生信息实体E_R图如图4.5所示违规时间违规编号违规内容处理结果备注信息违规信息违规信息实体:违规信息实体包括:违规编号实体、违规内容实体、处理结果实体、备注信息实体和违规时间实体。违规信息实体E_R图如图4.6所示学生年龄联系电话学生姓名学生信息学生编号学生性别所在班级家庭住址图4.5 学生信息实体E_R图 图4.6 违规信息实体E_R图成绩等级实体:成绩等级实体包括等级名称实体、成绩上限实体、成绩下限实体、成绩等级实体E_R图如图4.7所示成绩信息实体:成绩信息实体包括学生编号实体、考试科目实体、考试
20、成绩实体、考试类别考试类别考试成绩考试科目学生编号考试时间成绩信息实体、考试时间实体。成绩信息实体E_R图如图4.8所示成绩等级成绩下限成绩上限等级名称图4.7成绩实体等级E_R图 图4.8成绩信息实体E_R图4.3.3.数据库设计逻辑结构 下面给出学生管理系统数据库中主要表的表结构。tb_user(管理员信息表):管理员信息表用于保存管理员的信息,如表4.1所示 表4.1 表tb_user的结构字段名数据类型长度是否主键描述 username varchar20 管理员名称 pwd varchar10 管理员密码tb_teacher(教师信息表):用于保存教师的信息,如表4.2所示 表4.2
21、 表tb_teacher的结构 字段名数据类型长度是否主键描述 teacheridvarchar50教师编号 teachernamevarchar50教师姓名 sexvarchar50教师性别 officevarchar50所在办公室 knowledgevarchar50教师文凭 levelvarchar50教师职称tb_studentinfo(学生信息表):用于保存学生的信息,如表4.3所示 表4.3 表tb_studentinfo的结构 字段名 数据类型长度是否主键描述 studentidvarchar50 主键学生编号 studentnamevarchar50学生姓名 sexvarcha
22、r50学生性别 agevarchar8学生年龄 addrvarchar50联系地址 phonevarchar80联系电话 classvarchar50所在班级tb_regbreakinfo(违规信息表):用于保存违规事件的信息,如表4.4所示表4.4 表tb_regbeakinfo的结构 字段名数据类型长度是否主键 描述 studengidvarchar50学生编号 breakcontentvarchar100违规内容 handleresultvarchar100处理结果 memovarchar100备注信息 breaktimesmalldatatime4 违规时间tb_gradelevel(
23、成绩等级表):成绩等级表用于保存学生成绩等级信息,如表4.5所示 表4.5 表tb_gradelevel的结构 字段名数据类型长度是否主键描述grade_levelvarchar50等级名称up_gradefloat8成绩上限low_gradefloat8成绩下限tb_examinfo_sub(成绩信息表):成绩信息表用于保存学生的等级信息,如表4.6所示 表4.6 表tb_examinfo_sub的结构字段名数据类型长度是否主键描述studentidvarchar50学生编号codevarchar50考试科目gradefloat8考试成绩kindvarchar50考试类别examdatada
24、tatime8考试时间4.4.公共类的设置本系统是由ODBC连接的数据源,可以通过CDatabase类的Open函数连接数据源Open函数用于创建数据源的连接,语法如下:virtual BOOL Open(LPCTSTR lpszDSN,BOOL bExclusive=FALSE,BOOL bReadonly FALSE,LPCTSTR lpszConnect=”ODBC;”,BOOL bUseCursorLib=TURE);Open函数中的参数说明如表4.7所示。 表4.7 Open函数的参数说明 参数 描述lpszDSN通过ODBC管理器注册的数据源名,如果DSN在lpszConnect中
25、被设置,那么lpszDSN应设为NULL,并显示一个数据源对话框,用户可以在该对话框中选择数据源bExclusive默认为FALSE,表示以共享的方式打开数据源,当前版本的类库不支持独占方式,不能设置为TRUEbReadOnly默认为FLASE,当前为TRUE时以只读方式打开数据源lpszConnect连接字符串,可以包括数据源命、用户账号(ID)、密码和其它信息,字符串必须以“ODBC;”开头,表示要连接到一个ODBC数据源。bUseCursorLib默认为TRUE,表示装载光标库,设为FLASE则不装载,快照需要光标库,动态集不需要光标库。在CMystudentsysApp类中构造一个CD
26、atabase类对象,在InitInstance方法中连接数据源,代码如下:if(CoInitialize(NULL)!=0) /初始化COM环境 AfxMessagebox(“初始化COM支持库失败!”); exit(1);try CString strConnect; strConnect.Format(“DSN=mystudentsys;”); /设置连接字符串/判断连接数据库是否成功if(m_DB.Open(NULL,false,false,”ODBC;DSN=mystudentsys;UID=Sa;pwd=;”)=0); AfxMessageBox(“Unable to the Sp
27、ecified Data Source”); return FALSE; catch(CDBRxception *pE) pEReportError(); pEDelete(); /删除 return FLASE; 第五章 主体窗设计及模块功能实现5.1主窗体设计 “学生信息管理系统”主窗口由菜单和客户区域组成,其中,其中客户区域显示了一幅位图,主窗体效果如图5.1所示 图5.1 主窗体效果图 主窗体设计步骤如下: (1)启动Visual C+6.0,选择“File”/“New”命令,打开“New”对话框,。 (2)在“New”对话框左方的列表视图中选择“MFC AppWizard(exe)”
28、选项,在“Project name”文本框中输入工程名称,在“Location”文本框中设置工程保存的路径。单机“OK”按钮进入“MFC AppWizard-Step 1”对话框。 (3)单机“Finish”按钮完成工程的创建。 (4)在主窗口中放置1个图像控件,并导入1幅位图资源,适当调整图像控件的位置。(5)创建一个菜单资源,并设置各个菜单项的ID和名称。 (6)通过类向导向主窗口添加菜单项的单击事件。5.2科目信息管理模块设计5.2.1科目信息管理模块概述 科目信息管理用于维护科目信息,主要实现科目的添加,修改和删除等操作,“科目信息管理”窗口如图5.2所示 图5.2 科目信息管理5.2
29、.2科目信息管理技术分析本系统是用ODBC连接的数据源,在进行对数据表的操作时可以以CRecordset类为基类派生一个数据表映射类,这样可以方便地操作数据表。派生数据表映射类的步骤如何:(1)创建一个与数据表映射的类CSubjectinfo,打开“New Class”对话框,单击“Add Class”按钮,在弹出菜单中选择“New”命令,打开新建类窗口。(2)在“Name”文本框中输入类名“CSubjectinfo”,在“Base class”下拉列表框中选择基类“CREcordset”,单击“OK”按钮,打开“Database Options”对话框。(3)在“ODBC”下拉列表框中选择一
30、个数据源,本例为“mystudentsys”。“mystudentsys”是学生管理系统所需的数据源,用于连接tb_subject数据库。(4)单击“OK”按钮,打开“SQL Server登陆”对话框。(5)单击“确定”按钮,打开“Select Database Table”对话框。(6)选择“dbo.tb_subject”选项,单击“OK”按钮创建映射类。(7)在映射类CSubjectinfo的头文件中引入afxdb.h头文件。5.2.3科目信息管理实现过程 (1)创建一个对话框类,打开对话框属性窗口,将对话框的“ID”改为“IDD_DIg_subjectinfo”,将对话框标题改为“科目信
31、息管理”。 (2)向对话框中添加一个群组控件、2个静态文本控件和2个编辑框控件,各个控件的属性设置如表所示。 控件ID 控件属性对应变量 IDC_STATIC Caption:科目名称 无 IDC_STATIC Caption:科目代码无 IDC_subjectname 无CString m_subjectname IDC_subjectid 无CString m_subjectid (3)创建一个工具栏资源“IDR_TOOLBAR_subjectinfo”。(4)为创建的对话框添加一个类,类名为“CSubjectdlg”。在该类的头文件中引入Subjectinfo.h头文件,使其可以使用映射
32、类CSubjectinfo。(5)向对话框中添加OnInitDialog()方法,在对话框初始化时创建工具栏并打开本模块使用的数据表,代码如下:BOOL CSubjectdlg:OnInitDialog() CDialog:OnInitDialog();/创建工具栏并设置工具栏属性if(!m_ToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_SIZE_DYNAMIC)|!M_ToolBar.LoadToolBar(IDR_TOOLBAR_subjecti
33、nfo) TRACE90(_T(“创建工具条失败n”); return FALSE;/显示工具栏RepositionBars(AFX_IDW_CONTROLBAR_FIRTS,AFX_IDW_CONTROLBAR_LAST,0);/设置工具栏按钮风格m_ToolBar.SetButtonStyle(0,TBBS_CHECKBOX);m_ToolBar.SetButtonStyle(1,TBBS_CHECKBOX);m_ToolBar.SetButtonStyle(2,TBBS_CHECKBOX);m_ToolBar.SetButtonStyle(3,TBBS_CHECKBOX);m_ToolB
34、ar.SetButtonStyle(4,TBBS_CHECKBOX);m_ToolBar.SetButtonStyle(5,TBBS_CHECKBOX);m_ToolBar.SetButtonStyle(6,TBBS_CHECKBOX);/设置SQL语句CString sqlStr;sqlStr=SELECT * FROM tb_subject;mysubjectset = new CSubjectinfo(&(CMystudentsysApp*)AfxGetApp()-m_DB);if(!mysubjectset-Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr) Af
35、xMessageBox(tb_subject 表打开失败!);return TRUE;(6)自定义一个DisplayRecord()方法,在记录集指针移动时为控件赋值,代码如下:bool CSubjectdlg:DisplayRecord()/判断是否移动到开头和结尾if(mysubjectset-IsEOF()&mysubjectset-IsBOF() m_subjectname = ; /为控件赋空值m_subjectid = ;elseif(mysubjectset-IsBOF() /如果移动到了开头,就向后移动mysubjectset-MoveNext(); /向下移动记录集指针els
36、e /否则前移if(mysubjectset-IsEOF()mysubjectset-MovePrev(); /向上移动记录集指针m_subjectname = mysubjectset-m_subject; /为对应的变量赋值m_subjectid = mysubjectset-m_code;UpdateData(FALSE);return TRUE;(7)处理工具栏中的“添加”按钮的单击事件,当单击“添加”按钮时,将清空控件中的数据,以便用户进行输入,代码如下: void CSubjectdlg:Onsubjectinfotoolbaradd() /清空控件中的数据m_subjectnam
37、e = ;m_subjectid = ;UpdateData(FALSE); (8)处理工具栏中的“保存”按钮的单击事件,当单击“保存”按钮时,将控件中的数据保存到数据库中,代码如下: void CSubjectdlg:Onsubjectinfotoolbarsave() UpdateData(TRUE); /更新控件信息 /判断控件中的数据是否为空if(m_subjectname.IsEmpty()|m_subjectid.IsEmpty()AfxMessageBox(请输入相应的数据!);return ; /设置SQL数据CString sqlStr_findid;sqlStr_findi
38、d = SELECT * FROM tb_subject WHERE tb_subject.code=+m_subjectid+ ;mysubjectset_find = new CSubjectinfo(&(CMystudentsysApp*)AfxGetApp()-m_DB); /打开数据表 if(!mysubjectset_find-Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_findid)AfxMessageBox(tb_subject 打开失败!);/判断记录集中是否有要保存的数据信息if(mysubjectset_find-GetRecordCount(
39、)!=0)AfxMessageBox(科目代码不能重复,请修改后再输入!);if(mysubjectset_find-IsOpen() /判断数据表是否打开 mysubjectset_find-Close(); /关闭数据表delete mysubjectset_find; /释放指针return;if(mysubjectset_find-IsOpen() /判断数据表是否打开mysubjectset_find-Close(); /关闭数据表delete mysubjectset_find; /释放指针 mysubjectset-AddNew(); /调用添加记录的函数出理mysubjects
40、et-m_subject = m_subjectname; /为记录中的字段赋值mysubjectset-m_code = m_subjectid;trymysubjectset-Update(); /更新记录集mysubjectset-Requery(); /刷新记录集AfxMessageBox(成功保存数据!);catch( CDBException* e ) AfxMessageBox( e-m_strError,MB_ICONEXCLAMATION ); e-Delete(); DisplayRecord(); /更新显示(9)处理工具栏中的“删除”按钮的单击事件,当单击“删除”按钮时,将控件中的数据对应的数据库中的记录删除,代码如下: void CSubjectdlg:Onsubjectinfotoolbardel() / 设置SQL语句CString sqlStr_findid;sqlStr_findid=SELECT*FROMtb_class_subject WHERE tb_class_subject.code=+m_subjectid+ ;myclass_subject_findref=newCClass_subjectset(&(CMystudentsysApp*)AfxGetApp