1、课程信息表1. 实验题目用 Microsoft Access 或 SQL Server 建立数据库表,用 VC+实现对表的记录的查询、添加、修改和删除功能。2. 用 Access 创建数据表1) 启动 Microsoft access20032) 选择“文件”“新建”菜单,在右边任务中窗格中单击“空数据库” ,弹出一个对话框,指定数据库名 student.mdb。单击“创建”按钮。3) 按照表 1 所示,创建并添加数据表 student4) 关闭 Microsoft access2003设计好的表如下图所示:3. 3.定义 ODBC 数据源当用户安装 Visual C+的同时也会安装上 ODB
2、C 程序。但它不是出现在Visual C+程序组中。而是出现在系统的控制面板中。双击 ODBC 图标,进入 ODBC 数据源管理器。在这里用户可以设置 ODBC数据源的一些信息,其中的”用户 DSN”页面是用户定义自己的在本地计算机使用的数据源名(DSN)。定义用户的 DSN 过程如下:1) 单击添加 按钮,弹出有一驱动列表的” 创建新数据源” 对话框,如图 3.1图 3.1 ODBC 数据源管理器2) 在该对话框中选择要添加用户数据源的驱动程序,在这里选择”Microsoft Access Driver”,单击完成按钮,进入特定驱动程序的安装对话框,如图3.2:图 3.2 “创建新数据源”对
3、话框3) 在对话框中,单击选取按钮将前面创建的数据库调入,如图 3.3:图 3.3 ODBC Access 安装对话框4) 单击确定 按钮,刚才创建的用户数据源被添加在”ODBC 数据源管理器” 的”用户数据源” 列表中。如图 3.4:图 3.4 用户数据源列表4.MFC Appwizard 的创建用 MFC Appwizard(exe)可以容易地创建一个支持数据库的 SDI/MDI 应用程序,过程如下:1) 用 MFC Appwizard(exe)创建一个单文档应用程序 MYODBC。2) 在向导的第二步对话框中加入数据库的支持。3) 选中”Database view with file s
4、upport”项,单击Data Source按钮,弹出”Database Options”对话框。4.1 创建一个 MFC AppWizard 程序4) 从中选择 ODBC 的数据源”FOR C+”,单击OK按钮,弹出”Select Database Tables”对话框,从中选择要使用的表,即表 student。5) 单击OK按钮,又回到了向导的第二步对话框。保留缺省设置,单击Finish按钮。6) 编译并运行。其结果如下:图 4.2 MYODBC 运行结果5.设计浏览记录界面在 MYODBC 中,MFC 为用户自动创建了用于浏览数据表记录的工具按钮和相应的记录菜单项。若选择这些浏览记录命令
5、,系统就会自动调用相应的函数来移动数据表的当前位置。若在表单视图 MYODBCView 中添加控件并与表的字段相关联,就可以根据表的当前记录位置显示相应的数据。其步骤如下:1) 为表单对话框资源模板添加对话框添加控件如下:图 5.1 MYODBC 控件的设计控件的设置如下表:表 5.2 控件属性设置编辑框名称 ID 号 标题 其他属性编辑框(学号) IDC_Sno 默认编辑框(姓名) IDC_Sname 默认编辑框(课程号) IDC_Courseno 默认编辑框(课程名) IDC_Coursename 默认编辑框(开课学期) IDC_Openterm 默认编辑框(课时) IDC_hours 默
6、认编辑框(学分) IDC_credit 默认编辑框(课程类型) IDC_Coursetype 默认2) 按快捷键 Ctrl+W,弹出 MFC Class Wizard(MFC 类向导)对话框,切换到Member Variables(类成员变量)页面,在 Class name 框中选择CEx_ODBCView,为控件添加相关联的数据成员。这里添加的控件变量都是由系统自定义的,并与数据表字段相关联。3) 为各控件依次添加相关联的成员变量。其结果如图 5.3:图 5.3 添加的控件变量4) 编译运行并测试,结果如图 5.4 所示:图 5.4 MYODBC 最后的运行结果6.查询记录使用 CRecor
7、dSet 类的成员变量 m_strFilter、m_strSort 和成员函数 Open 可以对表记录进行记录查询。在表单中添加一个编辑框和一个查询按钮,将按编辑框中的读者条码内容对数据表进行查询,并将查找到的记录显示在前面添加的控件中。过程如下:1) 打开 MYODBC 应用程序的表单资源,添加控件如下:其中编辑框的 ID 设为 IDC_EDIT_QUERY,查询按钮的 ID 号设为 IDC_BUTTON_QUER图 6.1 要添加的控件2) 打开 MFC Class Wizard 对话框,为控件 IDC_EDIT_QUERY 添加关联变量m_strQuery.3) 在 MYODBCView
8、 类中添加按钮控件 IDC_BUTTON_QUERY 的BN_CLICKED 消息映射,并在映射函数中添加代码:void CMYODBCView:OnButtonQuery() UpdateData();m_strQuery.TrimLeft();if (m_strQuery.IsEmpty()MessageBox(“要查询的学号不能为空!“);return;if (m_pSet-IsOpen()m_pSet-Close();m_pSet-m_strFilter.Format(“Sno=%s“,m_strQuery);m_pSet-m_strSort=“Courseno“;m_pSet-Ope
9、n();if (!m_pSet-IsEOF()UpdateData(FALSE);elseMessageBox(“没有查到你要找的学号记录!“);4) 编译并运行。其结果如下:7.数据增加修改删除操作记录在 Ex_ODBC 的表单视图中增加三个按钮”添加”、 ”修改”和”删除”, 单击”添加”或”修改”都将弹出一个如图所示的对话框,在对话框中对数据进行编辑后,单击”确定”按钮使操作有效。图 7.1 MYODBC 的记录编辑1) 将 Ex_ODBC 的项目工作区窗口切换到 Resource View 页面,打开用于表单视图 CEx_ODBCView 的对话框资源 IDD_EX_ODBC_FORM
10、。向表单中添加三个按钮:” 添加”(IDC_REC_ADD)、 ”修改”(IDC_REC_EDIT)和”删除”(IDC_REC_DEL)。2) 添加一个对话框资源,标题为”学生表”ID 号为”IDD_Read_TABLE”。3) 为对话框添加控件如图4) 为对话框资源 IDD_Read_TABLE 创建一个对话框类 Cmy1。5) 为各控件依次添加相关联的成员变量。6) 为 Cmy1 添加按钮控件 IDOK 的 BN_CLICKED 消息映射,并添加下列代码:void Cmy1:OnOK() UpdateData(TRUE);CDialog:OnOK()7) 用 MFC Class Wizar
11、d 为 CEx_ODBCView 类中的三个按钮:IDC_REC_ADD、IDC_REC_EDIT 和 IDC_REC_DEL 添加 BN_CLICKED 消息映射,并添加下列代码:增加程序void CMYODBCView:OnButtonAdd() Cmy1 dlg ;if (dlg.DoModal()=IDOK)m_pSet-AddNew();m_pSet-m_Sno =dlg.m_Sno;m_pSet-m_Sname =dlg.m_Sname;m_pSet-m_Courseno =dlg.m_Courseno ; m_pSet- m_Coursename =dlg.m_Coursenam
12、e ;m_pSet-m_Openterm =dlg.m_Openterm;m_pSet-m_hours =dlg.m_hours;m_pSet-m_Coursetype =dlg.m_Coursetype;m_pSet-m_credit =dlg.m_credit;m_pSet-Update();m_pSet-Requery();修改程序段 void CMYODBCView:OnButtonEdit() Cmy1 dlg; dlg.m_Sname = m_pSet-m_Sname;dlg.m_Courseno =m_pSet-m_Courseno ;dlg.m_Coursename=m_pSe
13、t- m_Coursename ;dlg.m_Openterm =m_pSet-m_Openterm ;dlg.m_hours =m_pSet-m_hours ;dlg.m_Coursetype =m_pSet-m_Coursetype;dlg.m_credit =m_pSet-m_credit ;if (dlg.DoModal()=IDOK)m_pSet-Edit();m_pSet-m_Sname = dlg.m_Sname ;m_pSet-m_Courseno =dlg.m_Courseno;m_pSet- m_Coursename =dlg.m_Coursename; m_pSet-m_
14、Openterm =dlg.m_Openterm;m_pSet-m_hours =dlg.m_hours ;m_pSet-m_Coursetype =dlg.m_Coursetype ;m_pSet-m_credit =dlg.m_credit ;m_pSet-Update();UpdateData(FALSE);删除程序段void CMYODBCView:OnButtonDel() CRecordsetStatus status;m_pSet-GetStatus(status);m_pSet-Delete();if (status.m_lCurrentRecord=0)m_pSet-MoveNext();elsem_pSet-MoveFirst();UpdateData(FALSE);8) 在 MYODBCView.cpp 文件的开始处添加:#include “Cmy1.h“9) 编译并运行最终运行结果:可实现各种预期功能,例如:删除某条记录,点删除此记录即消失,查找时便无此记录,点添加则弹出对话框,输入信息点确定信息即加入,如图 7.4:图 7.4 添加数据再浏览是便可看到此信息,如图 7.5:图 7.5 查询到新添加的信息