数据库课程设计报告 图书管理系统

时间:2024.4.5

   

1相关技术介绍. 1

2需求分析. 1

2.1数据字典. 1

2.1.1数据库内含下列表. 1

2.1.2数据库表详细设计. 2

2.1.3安全性和完整性要求. 3

3概念结构设计. 4

E-R图. 4

4逻辑结构设计. 4

系统总体设计. 4

5.数据库物理设计. 6

6.数据库实施. 8

7.参考文献. 9

心得体会 …………………………………………………… 9


1.相关技术介绍

本程序使用ACCESS+VB .NET结合编写的。Access是Office办公套件中一个极为重要的组成部分而Visual Basic .NET(简称VB .NET)是四个.NET语言之一,Microsoft提供用以构建最新的.NET组件、应用程序和服务。这是继Visual Basic 6(简称VB 6)之后最新版的语言,并且它是历史上划时代的一次跳跃。现在,VB .NET是真正面向对象的语言。

程序编写环境:

数据管理系统:Microsoft  Office  ACCESS

程序编写平台:Microsoft  Vieual Basic.NET

操作系统:Microsoft  XP SP3

测试用帐号及密码(只列出一个):

学生帐号:U200915352

学生密码:123

    管理员帐号:

    管理员密码:

2.需求分析

2.1数据字典

数据库名:library.mdb

2.1.1数据库内含下列表

admininfo  (管理员资料)

board      (公告记录)

bookinfo   (图书资料)

class      (学生班级资料)

classify    (图书分类资料)

landinfo   (图书借阅登记资料)

libraryinfo (图书馆基本配置记录)

studentinfo (学生资料)

2.1.2数据库表详细设计

admininfo,管理员资料记录表

board,公告资料记录表

bookinfo,图书资料记录

class,学生班级资料记录

classify,图书分类资料

landinfo,图书借阅登记资料记录

libraryinfo,图书馆基本配置记录

studentinfo,学生资料记录

2.1.3安全性和完整性要求

本程序实现学生与图书馆管理员的界面分离模式,同时实现管理员对学生有全面的资料管理功能。有多个图书、学生、系统的动态管理功能,如:图书的查询、添加、删除、修改与及学生的详细资料的查询、添加、删除、修改等等多样、动态的管理。同时可以放权给非最高级管理员查询、添加、删除、修改的能力,实现密码修改。

3.概念结构设计

E-R图

4.逻辑结构设计

系统总体设计

包括两大系统:

一、学生图书借阅系统

图书借阅,归还,续借系统,修改登陆密码系统

二、管理员系统

包括:

1)管理员管理系统:添加、删除管理员,系统设有一个最高管理员拥有最高管理权限,修改管理员密码、登陆名

2)图书管理

(1)图书管理系统:查询、添加、删除、修改图书资料,可选择是否显示图书

(2)图书分类管理系统:图书分类添加、修改、删除管理

3)教务管理

(1)学生班级管理系统:学生班级添加、修改、删除管理

(2)学生信息管理系统:查询、添加、删除、修改学生资料

4)超时管理

图书借阅超时管理系统:列出学生超时借阅图书资料,锁定选定的学生,禁止锁定的学生再借阅,列出已锁定的学生名,可解除选定的学生,允许学生再借阅

5)系统配置

(1)图书馆基本配置设置系统:是否开放图书借阅,可设置可借出数量、借阅时间、续借次数、公告刷新时间,可重置为默认数据,修改配置方案

(2)公告管理系统:公告列表,添加、修改、删除公告

6)数据管理

(1)管理员数据管理系统:浏览管理员详细资料(包括登陆次数,最后登陆时间,是否最高管理员)

(2)学生数据管理系统:查询浏览学生详细资料(包括借阅次数,登陆次数,最后登陆时间)

(3)图书借阅管理系统:可按书名、借阅学生查询借阅数据,全显示已、没归还图书借阅数据信息,可清除已归还借阅信息。

登陆界面与系统详细设计流程图:

学生借阅图书登记系统流程图:

个人信息修改密码系统流程图:

5.数据库物理设计

数据的存放位置:与程序同一任何文件夹。

程序中连接数据库语句:

    Dim fileName As String = "library.mdb"

    Function getpath() '返回数据库完整路径

        Return Path.GetFullPath(fileName) '返回数据库完整路径

    End Function

    Dim sqlstr As String 'SQL语句标记

    Dim objDS As DataSet '数据在内存中的缓存

    Public cmd As OleDbCommandBuilder

    Dim connstring As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & getpath() & ""

    Public conn As OleDbConnection = New OleDbConnection(connstring)

数据读取公共函数:

    Public Function GetData(ByVal sqlstr As String) As DataSet

        ds = New DataSet

        ds.Clear()

        '实例化一个数据集对象

        Try

            conn.Open()

            '打开数据库连接

            ADOcmd = New OleDbDataAdapter(sqlstr, conn)

            '将数据库的数据映射到数据适配器

            ADOcmd.Fill(ds)

            '填充数据集的数据

            conn.Close()

            '关闭数据连接,这一点很重要

        Catch

            MsgBox("错误号:" & Err.Number & "错误描述:" & Err.Description)

        End Try

        Return ds

        ds = Nothing

    End Function

数据更新公共函数:

    Public Function UpdateData(ByVal sqlstr As String) As Boolean

        Try

            myCmd = New OleDbCommand(sqlstr, conn)

            '要对数据源执行的 SQL 语句或存储过程。

            conn.Open()

            '打开数据库连接

            myCmd.ExecuteNonQuery()

            '执行SQL

            conn.Close()

            '关闭数据库连接

        Catch

            MsgBox("错误号:" & Err.Number & "错误描述:" & Err.Description)

            Return False

        End Try

        Return True

    End Function

6.数据库实施

数据库连接建立与及连接:

    Public cmd As OleDbCommandBuilder

    Dim connstring As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & getpath() & ""

    Public conn As OleDbConnection = New OleDbConnection(connstring)

    '定义一个数据连接对象,并初始化

数据库对象的SQL脚本文件

    Dim sqlstr As String 'SQL语句标记

    Dim objDS As DataSet '数据在内存中的缓存

    sqlstr = "SELECT id,lpassword FROM studentinfo WHERE learnid='" & filter(Trim(tbname.Text).ToString) & "'"

    objDS = GetData(sqlstr)

    If objDS.Tables(0).Rows.Count > 0 Then

       If objDS.Tables(0).Rows(0)("lpassword").ToString = tbpassword.Text Then '比较输入密码和数据库的密码

       Dim main As New win_main

       loginid = objDS.Tables(0).Rows(0)("id")

       sqlstr = "update studentinfo set logins=logins+1,lastlogin=now() where id=" & filter(Trim(loginid).ToString) & ""

       objDS = GetData(sqlstr)

     …

     …

     …

数据库备份和恢复方案

方案一:

1)数据库备份

备份频率根据企业内务的大小和数据更新速度而定,如每周进行全面备份一次,每天进行一次增量备份,并且将备份数据库文件存储到一个独立的移动硬盘中以防不测。

2)数据库恢复

仅当管理系统崩溃或者数据库管理系统出错或者硬件设备不能正常工作时才采取恢复措施,将备份文件恢复到原来的正常工作的机器上或者新购置的机器之上。

方案二:

采取联网备份和恢复的方式,将当前工作的机器上的系统和数据库文件备份到网络中的另一台机器上,用冗余备份的方法在另一台备用机器上对当前工作的机器上的数据作一个完整的、实时的备份,一但当前机器不能正常工作或者受到破坏时,当即启用另一台备用机器,以保证企业的正常运作。

此方案对网络技术的要求较高,安全性也比较好,有条件的企业建议采用。

 

7.参考文献

[1]萨师煊,王珊。数据库系统概论(第四版)。高等教育出版社,2007

[2]黄志超,李婷婷。Visual Basic.NET项目开发实践。中国铁道出版社,2003

[3]黄明,梁旭,曹利超。Visual Basic.NET信息系统设计与开发实例。机械工业出版社,2005

[4]敬保恩,王保学,时春雨,Visual Basic.NET实例入门。海洋出版社,中国青年出版社,2001

心得体会

本次课程设计准备工作不够充分,加上我在系统方面知识掌握不够,基本是边看书查资料边开发,,完成了基本功能,但我相信如果有更多时间我会把这个系统完成的更加好。

但是我的收获也颇多,通过本项目我加深了对数据库设计和应用软件开发过程的理解。


第二篇:图书管理系统-数据库课程设计实验报告


计算机科学与工程学院

数据库课程设计报告书

题目:基于C/S模式的图书管理系统的设计

所学专业:计算机软件与理论

班    级:

作    者:

指导老师:

完成日期:20##年08月08日

内容提要

本文介绍了一个基于Client/Server模式的高校图书管理系统的设计与实现。运用Visual Basic.Net结合Microsoft SQL Server 2000开发的登录模块主要用于验证用户身份,进行有效的操作。从主界面模块在验证后进入每个子模块进行各个子系统的具体功能操作。在整个系统设计中充分利用了模块化的设计思想和开发方法。

关键词  C/S SQL2000数据库 课程设计

   

目  录

第1章 应用背景与需求说明…………………………………………………5

1.1 背景…………………………………………………………………5

1.2 数据需求……………………………………………………………5

1.3 事务需求……………………………………………………………5

1.4 系统开发平台………………………………………………………6

1.5 网络拓扑结构………………………………………………………6

第2章 解决方案………………………………………………………………7

2.1 E-R模型设计………………………………………………………7

2.1.1 实体列表……………………………………………………7

2.1.2 系统的E-R模型……………………………………………8

2.2 设计数据库…………………………………………………………8

2.2.1 创建数据库…………………………………………………8

2.2.2 创建数据表…………………………………………………8

2.2.3 连接数据库…………………………………………………9

2.3主窗体设计…………………………………………………………10

2.3.1 设计登录界面………………………………………………10

2.3.2 添加数据组件………………………………………………10

2.3.3 生成数据集…………………………………………………11

2.3.4 设计代码……………………………………………………11

2.4读者信息……………………………………………………………12

2.4.1 设计显示界面………………………………………………12

2.4.2 添加数据组件………………………………………………12

2.4.3 功能实现……………………………………………………12

2.5显示报表……………………………………………………………12

2.5.1 添加读者信息报表…………………………………………13

2.5.2 添加借阅情况表……………………………………………13

2.6综合查询的实现……………………………………………………14

2.6.1 添加数据组件………………………………………………14

2.6.2 窗体功能实现………………………………………………14

第3章 系统实现………………………………………………………………15

3.1开发环境……………………………………………………………15

3.2系统流程图…………………………………………………………15

3.3程序调试情况………………………………………………………16

3.4功能显示……………………………………………………………16

3.5结论…………………………………………………………………20

第4章 结束语…………………………………………………………………20

参考文献 ………………………………………………………………………21

附录:源代码清单 ……………………………………………………………21

第一章 问题描述

1.1 图书管理系统简介

本系统利用VB.NET处理数据库的功能,实现对图书馆信息的管理。主要功能为管理有关读者、出版社、书籍、借阅和管理者的信息等。

本系统的结构分为读者信息管理模块、出版社信息管理模块、书籍信息管理模块、借阅信息管理模块、管理者管理信息模块、报表显示模块和查询处理模块。

1.2 数据需求

根据系统的需求,首先将要记录的信息分类,要记录的信息如下。

⑴读者信息:包括证号、姓名、联系方式、已借书数目、读者类别和能否借书等。

⑵出版社信息:包括名称、地址、网址、E-mail等。

⑶书籍信息:包括书号、丛书系列、作者、责任编辑、字数、定价、出版时间、主题分类、二级分类、馆内借阅分类、总册数、库存量、出版社和书名等。

⑷借阅信息:包括借阅日期、应归还日期、实际归还日期、能否续借、书号和证号等。

⑸管理者信息:包括管理者名称、对应密码和对应权限等。

根据这些需要,本系统需要“读者信息”表,“出版社信息”表,“书籍信息”表,“借阅信息”表和“管理者信息”表。

1.3 事务需求

经过实际考察、咨询和分析,高等院校图书管理系统主要应该具有以下功能模块,如1.1图。

⑴在读者信息管理部分,要求如下。

l  可以浏览读者信息。

l  可以对读者信息进行维护,包括添加及删除等操作。

⑵在出版社信息管理部分,要求如下。

l  可以浏览出版社信息。

l  可以对出版社信息进行维护,包括添加及删除等操作。

⑶在书籍信息管理部分,要求如下。

l  可以浏览书籍信息。

l  可以对书籍信息进行维护,包括添加及删除等操作。

⑷在借阅信息管理部分,要求如下。

l  可以浏览借阅信息。

l  可以对借阅信息进行维护操作。

⑸在管理者信息管理部分,要求如下。

l  显示当前数据库中管理者情况。

l  对管理者信息维护操作。

图1.1 系统业务逻辑关系

1.4 系统开发平台

前台:

1、硬件要求:

CPU: Pentium 4 2.0GHz以上IBM兼容机

内存:512MB以上容量

显卡:32MB或以上显存之AGP接口显卡

2、软件要求:

操作系统:Microsoft Windows 2000/XP

开发工具:Microsoft Visual Studio.Net2003

数据库服务器:

1、硬件要求:

CPU: Pentium4 2.8GHz以上IBM兼容机

内存:1024MB以上容量

显卡:32MB或以上显存之AGP接口显卡

2、软件要求:

操作系统:Microsoft Windows 20## Server

数据库服务器:Microsoft SQL 20## Server

网络设备:

2块网卡:客户机D-Link DFE-650TX,服务器Intel PCLA8460B。

路由器:一台SOHO路由器TL-R402M

1.5 网络拓扑结构

本设计采用客户机/服务器(C/S)体系,数据的储存管理功能较为透明性,可以合理均衡事务的处理,充分保证数据的完整性和一致性。

                       图1.2  C/S模式结构

第二章 解决方案

数据库主要着重于数据对象的属性和数据对象之间的关系的分析。一般采用E-R图,即实体-关系模型来分析数据对象的属性和数据对象之间的关系。

2.1 E-R模型设计

2.1.1实体列表

2.1.2系统的E-R模型

该图书管理系统的E-R模型,如下图所示

2.2 设计数据库

2.2.1创建数据库

(1)在服务器资源管理器中的任一节点右击。

(2)执行快捷菜单中的“新建数据库”命令,并在打开的“创建数据库”对话框中输入数据库名Library,选中“使用WindowsNT集成安全性”单选按钮。

(3)单击“确定”按钮,则新建的数据库就会出现在服务器上。

2.2.2创建数据表

创建数据库后,为Library数据库添加数据表,步骤如下。

(1)在服务器资源管理器中右击数据库Library下的“表”文件夹。在弹出的快捷菜单中执行“新建表”命令,出现表设计器。

(2)添加表的字段和其他详细资料。各表数据结构如下表所示。

表2.1 图书管理系统各表数据结构

2.2.3连接数据库

为数据库Library和本系统之间建立一个数据连接。

(1)在服务器资源管理器中右击“数据连接”节点。在弹出的快捷菜单中执行“添加连接”命令,打开Data Link Properties对话框。切换到Provider选项卡,选中列表框中的Microsoft OLE DB Provider for SQL Server项。单击“下一步”切换到Connection选项卡。

(2)在其中的第一个下拉列表框中选择数据库所在服务器名称。输入登录服务器信息后选择数据库Library,然后单击Test Connection按钮。如果测试成功,单击“确定”按钮。

2.3主窗体设计

创建一个新的“Windows应用程序”类型的项目,名为“图书馆管理”。将默认创建的窗体命名为“主窗体”,把“主窗体”作为本系统中的主界面。

在窗体中添加两个Pannel控件,7个Button控件和7个Linklabel控件。

2.3.1设计登录界面

设计登录界面,创建一个新的”Windows窗体”,名为登录,作为本系统的登录界面.在登录窗体上添加两个Label控件,两个Button控件和两个TextBox控件,添加控件后的窗体如图所示。

2.3.2添加数据组件

在工具箱中单击“数据”选项卡,添加OleDbDataAdapter组件。

(1)在工具箱中单击OleDbDataAdapter组件,在窗体任意位置拖动出一个虚框矩形后释放左键弹出“数据适配器配置向导”对话框。

(2) 单击“下一步”,在打开的对话框中选择前面建好的数据连接,然后单击“下一步”。

(3)选中“使用SQL语句”,然后单击“下一步”进入“生成SQL语句”对话框。

(4)在其中的多行文本框直接输入SQL语句“SELECT 管理者信息.* FROM 管理者信息”。

(5)单击“下一步”按钮,进入“查看向导结果”,单击“完成”按钮完成数据适配器配置。

配置数据适配器后,在主窗体上就会自动添加一个OleDbConnection控件。

2.3.3生成数据集

生成数据集的步骤如下:

(1)单击OleDbDataAdapter控件“属性”对话框中的“生成数据集”链接,打开“生成数据集”对话框。

(2)在其中选中“新建”单选按钮,并在其后面的文本框中输入“Lib管理者信息”。

(3)在“选择要添加到数据集中的表”列表框中列出了前面添加的OleDbDataAdapter组件所连接的表,选中该表名前面的复选框。

(4)选中“将此数据集添加到设计器”复选框,单击“确定”按钮

这样,将生成一个名称为“Lib管理者信息”的数据集,该数据集以文件形式存储,文件名为“Lib管理者信息.xsd”。而在项目中,添加了一个DataSet组件,名为“objLib管理者信息”。

在解决方案资源管理器中右击该项目,在弹出快捷菜单中单击“属性”菜单项。在打开的“属性页”对话框中的“启动对象”下拉列表框中选择“主窗体”选项。单击“确定”按钮,这样该项目启动时,就会从主窗体开始启动。

2.3.4设计代码

在程序运行过程中,如果想通过单击LinkLabel控件或Button控件进入系统中的各个功能模块(如显示读者信息等),就会弹出一个对话框要求输入用户名和密码.单击"确认"按钮,程序就会到数据库的"管理者信息"表中查找该用户名和密码是否存在.如果存在,允许进入功能模块.

完成登录功能的主要代码集中在UserCheck函数中.在程序运行过程中,在登录窗体的"用户姓名"和"用户密码"文本框中输入用户名和密码后,单击"确认"按钮就会触发UserCheck函数并执行其中的代码.如果UserCheck函数返回True,那么允许用户的操作;否则拒绝用户的操作请求.

在UserCheck函数中首先定义Login类型的变量dlg_Login,然后通过ShowDialog方法来显示登录窗体.如果用户在登录窗体中输入用户姓名和密码,并且单击了"确认"按钮,那么自动调用一个自定义函数LoadDataSet(),由此函数进行数据加载.如果出错,显示错误信息,回滚整个事务.

具体设计代码见附录1.1。

2.4 读者信息

在当前项目中添加一个“Windows窗体”,将窗体命名为“读者信息”。

2.4.1设计显示界面

在窗体上添加1个GroupBox控件,9个Button控件,5个TextBox控件,1个CheckBox控件和7个Label控件。

各按钮控件是为了执行相应的操作。各TextBox控件和CheckBox控件用来显示数据集中的数据,这个功能通过设置DataBindings属性来实现。

2.4.2添加数据组件

向窗体添加OleDbConnection组件,命名为OleDbConnection1后将其选中,在“属性”对话框的ConnectionString栏单击,选择所建数据库Library。

添加OleDbDataAdapter组件和生成数据集的方法步骤如2.3.2及2.3.3。

设置各TextBox控件的DataBinding属性来实现对数据集中数据的显示(以Edit证号为例)。

(1)选中“Edit证号”控件单击“属性”对话框。

(2)单击DataBinding属性前面的+号打开该属性的详细列表。

(3)设置Text属性:在该属性后面栏中单击并选择所对应字段。

(4)设置其他TextBox控件的DataBinding属性。

2.4.3功能实现

显示数据,添加读者,保存更改,记录定位的实现。

具体实现代码见附1.2。

“管理者信息”,“出版社信息”,“书籍信息”,“借阅信息”和该模块的设计思路及方法步骤完全一致,在此从略。

2.5 显示报表

在当前项目中添加一个“Windows窗体”,命名为“报表窗体”,该模块显示当前数据库中读者信息和借阅信息的报表。

在窗体上添加一个CrystalReportViewer1,它充当报表显示的窗体,然后在窗体中添加一个菜单,菜单中包括两个子菜单项—“读者信息”和“借阅信息”。

在程序运行中,如果单击“读者信息”菜单项,就会自动在窗体上显示“读者信息报表.rpt”:如果单击“借阅信息”命令就会自动在窗体上显示“借阅信息报表.rpt”报表。

2.5.1添加读者信息报表

(1)在开发环境中选择菜单“项目”中的“添加新项”对话框中选择Crystal Report选项。

(2)在“名称”文本框中输入报表名“读者信息报表.rpt”,单击“打开”按钮,就会弹出入图所示的“Crystal Report库”对话框。

(3)在其对话框中选择“使用报表专家”单选按钮,在“选择专家”列表框中选择“标准”选项,单击“确定”按钮,进入下一步。

(4)在弹出的“标准报表专家”对话框中,选择“可用的数据源”列表框中的OLB DB(ADO)选项,就会弹“OLE DB(ADO)”对话框。选择OLB DB提供程序为Microsoft OLE DB Provider for SQL Server,单击“下一步”按钮,显示 “连接信息”对话框。

(5)在其中设置连接信息,单击“完成”按钮,返回“标准报表专家”对话框。

(6)选择数据源为OLE DB(ADO)中的Library数据库,并且选中其中的“读者信息”表。单击“插入表”按钮,把“读者信息”表插入到报表中,单击“下一步”按钮。

(7)在“字段”选项卡中单击“全部添加”按钮,把“读者信息”表中的所有字段添加到报表中,单击“完成”按钮就完成报表的设计。

设计完成的“读者信息报表”如图所示。

图2.1 读者信息报表效果图

2.5.2添加借阅情况报表

添加借阅情况报表的过程与添加读者信息报表过程大致相同,不同之处在于插入到报表中的数据表为“读者信息”。

2.6 综合查询的实现

在程序运行过程中,单击主窗体的“综合查询”按钮,就会弹出一个对话框。在其中设置查询条件,根据查询条件从记录集中筛选出所需记录。

为此需要在项目中添加一个窗体“综合查询”。

还需要设置“CmbBox运算符”控件的Items属性。单击窗体上“CmbBox运算符”控件,然后在“属性”对话框中单击Items栏,就会出现一个按钮,单击按钮,在打开的窗口中如图2.2所示设置字符串集合编辑器字符串。

图2.2 所示设置字符串集合编辑器

设置完毕,单击确定按钮。

2.6.1添加数据组件

在窗体上添加一个OleDbDataAdapter组件,使用数据适配器配置向导对其进行配置。选择数据连接后输入SQL语句“SELECT 出版社信息.* FROM 出版社信息”。

同样再为窗体添加四个OleDbDataAdapter组件,

在"生成SQL语句"对话框的多行文本框中分别输入SQL语句“SELECT 读者信息.* FROM 读者信息”, “SELECT 管理者信息.* FROM 管理者信息” ,“SELECT 借阅信息.* FROM 借阅信息”, “SELECT 书籍信息.* FROM 书籍信息” ,然后单击“完成”按钮,Name属性分别设置为OleDbDataAdapter2,OleDbDataAdapter3,OleDbDataAdapter4,OleDbDataAdapter5完成数据适配器的配置。

生成数据集的步骤如下。

(1)在OleDbDataAdapter1组件的“属性”对话框中单击“生成数据集”超链接,打开“生成数据集”对话框,选中“新建”按钮并在后面文本框中输入“Lib综合查询”。

(2)在“选择要添加到数据集中的表”列表框中,选中5个表前面的复选框。

(3)选中“将此数据集添加到设计器”复选框,单击“确定”按钮。

这样,将生成一个名称为“Lib综合查询”的数据集,该数据集以文件的形式存储,文件名为“Lib综合查询.xsd”。而在项目中,添加一个DataSet组件,名称为“objLib综合查询”。

设计完成的数据集如图2.4所示。

2.6.2窗体功能实现

具体功能实现代码见附1.7。

图2.3 综合查询数据集

第三章 系统实现

3.1开发环境

本系统使用VisualBasic.NET语言进行开发。需要Microsoft .NET Framework SDK v1.1的支持。适用内存不低于256M配备有Windows2000,Windows2003,WindowsXP系统的计算机。

3.2系统流程图

在本系统中准备通过如下窗体来实现数据维护的功能。

(1) 主窗体:管理着各个子窗体。

(2)“读者信息”子窗体:管理读者信息。

(3)“管理者信息”子窗体:管理用户信息。

(4)“出版社信息”子窗体:管理出版社信息。

(5)“书籍信息”子窗体:管理书籍信息。

(6)“借阅信息”子窗体:管理借阅信息。

(7)“报表窗体”子窗体:显示数据报表。

(8)“综合查询”子窗体:执行用户自定义的查询。

系统流程图如图3.1所示:

图3.1 系统流程图

3.3 程序调试情况

在数据连接时一定要注意窗体和相应显示控件的绑定关系。在把系统从一台计算机移植到另一台计算机时一定要把数据文件library.mdf和library_log.LDF同时移植,并对相应的提供服务的SQL Server服务器进行相应的修改,否则数据正确连接并显示。

3.4 功能显示

运行程序后首先显示主窗体,如图3.2所示。

图3.2 主界面

单击“输入/查看读者信息”,就会弹出如图3.3所示登录框。

图3.3 登录界面

在登录对话框中输入用户姓名和密码,单击“确认”按钮,就会对用户身份进行认证,如果认证通过,那么就会弹出如图3.4所示的读者信息管理窗体。

图3.4 读者信息管理窗体

在“读者信息”窗体中可以对读者信息进行维护操作,例如浏览读者信息,添加记录和删除记录等。

单击“输入/查看书籍信息”,就会显示“书籍信息”窗体,在该窗体中可以对书籍信息进行维护操作。书籍信息维护窗体如图3.5所示。

图3.5 书籍信息窗体

单击“输入/查看借阅信息”,就会显示“借阅信息”窗体,在该窗体中可以对出版社信息进行维护操作。出版社信息维护窗体如图所示。

图3.6 借阅信息窗体

单击“输入/查看出版社信息”,就会显示“出版社信息”窗体,在该窗体中可以对借阅信息进行维护操作。借阅信息维护窗体如图3.7所示。

图3.7 出版社信息窗体

单击“输入/查看管理者信息”,结果如图3.8所示。

图3.8 管理者信息窗体

在主窗体上单击“显示报表”,那么就可以查看反映读者信息和借阅信息的报表,借阅信息的报表如图所示。

图3.9 报表窗体

如果用户在运行的主窗体上单击“综合查询”,那么就可以查看针对不同的数据表进行查询操作。选择查询依据为“出版社信息”表查看其中的所有信息,结果如图3.10所示。

图3.10 综合查询窗体

3.5 结论

在这个系统的开发过程中,值得注意的几点有:

(1)数据报表的实现.报表是数据库应用程序的重要组成部分,通过报表,可以把数据库中内容经过组织以后生动地展示给用户,VB.NET提供的Crystal Report可以大大提高报表的设计效率。

(2)复杂查询的实现。在程序运行过程中,单击窗体中的“综合查询”按钮,就会弹出一个对话框,在该对话框中设置查询条件,根据查询条件从记录集中筛选出所需记录,所指定的查询条件包括查询的依据,排序的依据,运算符等等。

第四章 结束语

通过做课程设计,有几点感想,归纳如下。

1. 扎实的理论基础。如果不掌握它们,很难写出高水平的程序。而这一点又是我们所缺乏的。

2. 不钻牛角尖。当遇到障碍的时候,暂时远离电脑,当重新开始工作的时候,也许会发现那些难题现在竟然可以迎刃而解。  

3. 多与别人交流。三人行必有我师。

4. 良好的编程风格。注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。如果注释和代码不一致,那就更加糟糕。

最后,特别要感谢史开宗老师在软件工程和数据库课程中认真负责的教学,才使得我能结合所学的知识完成这一课程设计。

参考文献

1 萨师煊,王珊,数据库系统概论(第三版). 北京:高等教育出版社,2000

2 齐治昌,谭庆平,宁洪,软件工程(第二版).北京:高等教育出版社,2004

3 David I.Schneider,Visual Basic.NET编程导论. 电子工业出版社,2003

附录:源代码清单

附1.1主窗体设计代码如下:

Public Class 主窗体

    Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

  ‘此处省略主窗体设计代码

#End Region

    Dim sender As System.Object

    Dim e As System.EventArgs

    Public Sub LoadDataSet()

        Dim objDataSetTemp As 图书馆管理.Lib管理者信息

        objDataSetTemp = New 图书馆管理.Lib管理者信息

        '临时数据集objDataSetTemp保存从FillDataSet()函数调用中返回的记录

        '如果未出错则填充到主数据集 "objLib管理者信息"中

        Try

            Me.FillDataSet(objDataSetTemp)

        Catch eFillDataSet As System.Exception

            Throw eFillDataSet

        End Try

        Try

            objLib管理者信息.Clear()

            objLib管理者信息.Merge(objDataSetTemp)

        Catch eLoadMerge As System.Exception

            Throw eLoadMerge

        End Try

    End Sub

    Public Sub FillDataSet(ByVal dataSet As 图书馆管理.Lib管理者信息)

        '实现打开连接,将OleDbDataAdapter1中的数据添加到数据集,关闭连接。

        dataSet.EnforceConstraints = False

        Try

            Me.OleDbConnection1.Open()

            Me.OleDbDataAdapter1.Fill(dataSet)

        Catch fillException As System.Exception

            Throw fillException

        Finally

            dataSet.EnforceConstraints = True

            Me.OleDbConnection1.Close()

        End Try

    End Sub

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click

    End Sub

    Private Sub LinkLabel_退出_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel_退出.LinkClicked

        End

    End Sub

    Private Sub LinkLabel_读者信息_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel_读者信息.LinkClicked

        btn_读者信息_Click(sender, e)

    End Sub

    Private Sub LinkLabel_书籍信息_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel_书籍信息.LinkClicked

        btn_书籍信息_Click(sender, e)

    End Sub

    Private Sub 主窗体_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub LinkLabel_出版社信息_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel_出版社信息.LinkClicked

        btn_出版社信息_Click(sender, e)

    End Sub

    Private Sub LinkLabel_借阅信息_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel_借阅信息.LinkClicked

        btn_借阅信息_Click(sender, e)

    End Sub

    Private Sub LinkLabel_查询_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel_查询.LinkClicked

        btn_查询_Click(sender, e)

    End Sub

    Private Sub LinkLabel_报表_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel_报表.LinkClicked

        btn_报表_Click(sender, e)

    End Sub

    Private Sub LinkLabel_管理者信息_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel_管理者信息.LinkClicked

        btn_管理者信息_Click(sender, e)

    End Sub

    Function UserCheck(ByVal sender As System.Object, ByVal e As System.EventArgs) As Boolean

        Dim dlg_Login As Login

        dlg_Login = New Login

        If (dlg_Login.ShowDialog = DialogResult.OK) Then

            Try

                Me.LoadDataSet()

            Catch eLoad As System.Exception

                System.Windows.Forms.MessageBox.Show(eLoad.Message)

            End Try

            Dim i As Integer

            Me.BindingContext(objLib管理者信息, "管理者信息").Position = 0

            For i = 0 To Me.BindingContext(objLib管理者信息, "管理者信息").Count - 1

                If Not Me.BindingContext(objLib管理者信息, "管理者信息").Current.GetType Is GetType(DataRowView) Then

                    Exit For

                End If

                Dim drv As DataRowView = CType(Me.BindingContext(objLib管理者信息, "管理者信息").Current, DataRowView)

                If Trim(drv("用户名称")) = dlg_Login.Txt_用户姓名.Text Then

                    If Trim(drv("密码")) = dlg_Login.Txt_用户密码.Text Then

                        Return True

                    End If

                End If

                Me.BindingContext(objLib管理者信息, "管理者信息").Position += 1

            Next

        End If

        UserCheck = False

    End Function

    Private Sub btn_读者信息_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_读者信息.Click

        If UserCheck(sender, e) Then

            Dim dlg As 读者信息

            dlg = New 读者信息

            dlg.ShowDialog()

        Else

            MessageBox.Show("登录失败!", "登录", MessageBoxButtons.OK, _

            MessageBoxIcon.Stop)

        End If

    End Sub

    Private Sub btn_书籍信息_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_书籍信息.Click

        If UserCheck(sender, e) Then

            Dim dlg As 书籍信息

            dlg = New 书籍信息

            dlg.ShowDialog()

        Else

            MessageBox.Show("登录失败!", "登录", MessageBoxButtons.OK, _

            MessageBoxIcon.Stop)

        End If

    End Sub

    Private Sub btn_出版社信息_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_出版社信息.Click

        If UserCheck(sender, e) Then

            Dim dlg As 出版社信息

            dlg = New 出版社信息

            dlg.ShowDialog()

        Else

            MessageBox.Show("登录失败!", "登录", MessageBoxButtons.OK, _

            MessageBoxIcon.Stop)

        End If

    End Sub

    Private Sub btn_借阅信息_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_借阅信息.Click

        If UserCheck(sender, e) Then

            Dim dlg As 借阅信息

            dlg = New 借阅信息

            dlg.ShowDialog()

        Else

            MessageBox.Show("登录失败!", "登录", MessageBoxButtons.OK, _

            MessageBoxIcon.Stop)

        End If

End Sub

Private Sub btn_退出_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_退出.Click

        End

    End Sub

    Private Sub btn_查询_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_查询.Click

        If UserCheck(sender, e) Then

            Dim dlg As 综合查询

            dlg = New 综合查询

            dlg.ShowDialog()

        Else

            MessageBox.Show("登录失败!", "登录", MessageBoxButtons.OK, _

            MessageBoxIcon.Stop)

        End If

    End Sub

    Private Sub btn_报表_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_报表.Click

        If UserCheck(sender, e) Then

            Dim dlg As 报表窗体

            dlg = New 报表窗体

            dlg.ShowDialog()

        Else

            MessageBox.Show("登录失败!", "登录", MessageBoxButtons.OK, _

            MessageBoxIcon.Stop)

        End If

    End Sub

    Private Sub btn_管理者信息_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_管理者信息.Click

        If UserCheck(sender, e) Then

            Dim dlg As 管理者信息

            dlg = New 管理者信息

            dlg.ShowDialog()

        Else

            MessageBox.Show("登录失败!", "登录", MessageBoxButtons.OK, _

            MessageBoxIcon.Stop)

        End If

    End Sub

    Private Sub Panel2_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel2.Paint

    End Sub

End Class

附1.2读者信息窗体设计代码如下:

Public Class 读者信息

    Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

‘此处省略主窗体设计代码

#End Region

    Private Sub GroupBox_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox.Enter

    End Sub

    Private Sub edit证号_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles edit证号.TextChanged

    End Sub

    Private Sub OleDbDataAdapter1_RowUpdated(ByVal sender As System.Object, ByVal e As System.Data.OleDb.OleDbRowUpdatedEventArgs) Handles OleDbDataAdapter1.RowUpdated

    End Sub

    Private Sub 读者信息_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Try

            Me.LoadDataSet()

        Catch eLoad As System.Exception

            System.Windows.Forms.MessageBox.Show(eLoad.Message)

        End Try

        Me.objLib读者信息_PositionChanged()

    End Sub

    Public Sub LoadDataSet()

        Dim objDataSetTemp As 图书馆管理.Lib读者信息

        objDataSetTemp = New 图书馆管理.Lib读者信息

        '临时数据集objDataSetTemp保存从FillDataSet()函数调用中返回的记录

        '如果未出错则填充到主数据集 "objLib读者信息"中

        Try

            Me.FillDataSet(objDataSetTemp)

        Catch eFillDataSet As System.Exception

            Throw eFillDataSet

        End Try

        Try

            objLib读者信息.Clear()

            objLib读者信息.Merge(objDataSetTemp)

        Catch eLoadMerge As System.Exception

            Throw eLoadMerge

        End Try

    End Sub

    Public Sub FillDataSet(ByVal dataSet As 图书馆管理.Lib读者信息)

        '实现打开连接,将OleDbDataAdapter1中的数据添加到数据集,关闭连接。

        dataSet.EnforceConstraints = False

        Try

            Me.OleDbConnection1.Open()

            Me.OleDbDataAdapter1.Fill(dataSet)

        Catch fillException As System.Exception

            Throw fillException

        Finally

            dataSet.EnforceConstraints = True

            Me.OleDbConnection1.Close()

        End Try

    End Sub

    Private Sub objLib读者信息_PositionChanged()

        Me.lblNavLocation.Text = (((Me.BindingContext(objLib读者信息, _

"读者信息").Position + 1).ToString + "的") _

+ Me.BindingContext(objLib读者信息, "读者信息").Count.ToString)

    End Sub

    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click

        '首先清除控件中的内容然后调用AddNew方法添加新记录如果出错显示信息

        '调用函数显示记录数和当前记录位置

        Try

            Me.BindingContext(objLib读者信息, "读者信息").EndCurrentEdit()

            Me.BindingContext(objLib读者信息, "读者信息").AddNew()

        Catch eEndEdit As System.Exception

            System.Windows.Forms.MessageBox.Show(eEndEdit.Message)

        End Try

        Me.objLib读者信息_PositionChanged()

    End Sub

    Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click

        '将在窗体中对数据的更改保存到数据库中

        Try

            Me.UpdateDataSet()

        Catch eUpdate As System.Exception

            System.Windows.Forms.MessageBox.Show(eUpdate.Message)

        End Try

        Me.objLib读者信息_PositionChanged()

    End Sub

    Public Sub UpdateDataSet()

        Dim objDataSetChanges As 图书馆管理.Lib读者信息 = _

        New 图书馆管理.Lib读者信息

        '创建一个新数据集来保存对主数据集所做的更改

        Me.BindingContext(objLib读者信息, "读者信息").EndCurrentEdit()

        '停止当前的任何编辑

        objDataSetChanges = CType(objLib读者信息.GetChanges, 图书馆管理.Lib读者信息)

        If (Not (objDataSetChanges) Is Nothing) Then

            Try

                Me.UpdateDataSource(objDataSetChanges)

                '调用UpdateDataSource函数将更改合并到数据集中

                objLib读者信息.Merge(objDataSetChanges)

                objLib读者信息.AcceptChanges()

            Catch eUpdate As System.Exception

                Throw eUpdate

            End Try

        End If

    End Sub

    Public Sub UpdateDataSource(ByVal ChangedRows As 图书馆管理.Lib读者信息)

        '打开数据连接,使用OleDbDataAdapter的Update方法更新数据库

        Try

            If (Not (ChangedRows) Is Nothing) Then

                Me.OleDbConnection1.Open()

                Me.OleDbDataAdapter1.Update(ChangedRows)

            End If

        Catch updateException As System.Exception

            Throw updateException

        Finally

            Me.OleDbConnection1.Close()

        End Try

    End Sub

    Private Sub btnNavFirst_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNavFirst.Click

        Me.BindingContext(objLib读者信息, "读者信息").Position = 0

        Me.objLib读者信息_PositionChanged()

    End Sub

    Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click

        Me.BindingContext(objLib读者信息, "读者信息").CancelCurrentEdit()

        Me.objLib读者信息_PositionChanged()

    End Sub

    Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click

        If (Me.BindingContext(objLib读者信息, "读者信息").Count > 0) Then

            Me.BindingContext(objLib读者信息, "读者信息").RemoveAt _

            (Me.BindingContext(objLib读者信息, "读者信息").Position)

        End If

        Me.objLib读者信息_PositionChanged()

    End Sub

    Private Sub btnLast_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLast.Click

        Me.BindingContext(objLib读者信息, "读者信息").Position = _

        (Me.BindingContext(objLib读者信息, "读者信息").Count - 1)

        Me.objLib读者信息_PositionChanged()

    End Sub

    Private Sub btnNavPrev_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNavPrev.Click

        Me.BindingContext(objLib读者信息, "读者信息").Position = _

        (Me.BindingContext(objLib读者信息, "读者信息").Position - 1)

        Me.objLib读者信息_PositionChanged()

    End Sub

    Private Sub btnNavNext_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNavNext.Click

        Me.BindingContext(objLib读者信息, "读者信息").Position = _

        (Me.BindingContext(objLib读者信息, "读者信息").Position + 1)

        Me.objLib读者信息_PositionChanged()

    End Sub

    Private Sub btnCancelAll_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelAll.Click

        Me.objLib读者信息.RejectChanges()

    End Sub

End Class

**鉴于“读者信息”,“管理者信息”,“出版社信息”,“书籍信息”,“借阅信息”模块除连接数据源不同外,设计思路步骤均相同,此处省略“管理者信息”,“出版社信息”,“书籍信息”,“借阅信息”四个模块的代码。

附1.3管理者信息窗体设计代码(略)

附1.4出版社信息窗体设计代码(略)

附1.5书籍信息窗体设计代码如(略)

附1.6借阅信息窗体设计代码如(略)

附1.7综合查询窗体设计代码如下:

Public Class 综合查询

    Inherits System.Windows.Forms.Form

#Region " Windows 窗体设计器生成的代码 "

‘此处省略窗体设计代码

#End Region

    Sub QueryData(ByVal SqlString As String, ByVal OrderString As String)

        QueryString = SqlString

        If OrderString <> "" Then

            QueryString = SqlString + " ORDER BY " + OrderString

        End If

    End Sub

    Public Sub LoadDataSet()

        Dim objDataSetTemp As 图书馆管理.Lib综合查询

        objDataSetTemp = New 图书馆管理.Lib综合查询

        Try

            Me.FillDataSet(objDataSetTemp)

        Catch eFillDataSet As System.Exception

            Throw eFillDataSet

        End Try

        Try

            objLib综合查询.Clear()

            objLib综合查询.Merge(objDataSetTemp)

        Catch eLoadMerge As System.Exception

            Throw eLoadMerge

        End Try

    End Sub

    Public Sub FillDataSet(ByVal dataSet As 图书馆管理.Lib综合查询)

        dataSet.EnforceConstraints = False

        Try

            If Me.OleDbConnection1.State <> ConnectionState.Closed Then

                Me.OleDbConnection1.Close()

            End If

            Me.OleDbConnection1.Open()

            Me.OleDbDataAdapter1.Fill(dataSet)

            Me.OleDbDataAdapter2.Fill(dataSet)

            Me.OleDbDataAdapter3.Fill(dataSet)

            Me.OleDbDataAdapter4.Fill(dataSet)

            Me.OleDbDataAdapter5.Fill(dataSet)

        Catch fillException As System.Exception

            Throw fillException

        Finally

            dataSet.EnforceConstraints = True

            Me.OleDbConnection1.Close()

        End Try

    End Sub

    Dim DataType(100) As String

    '该数组用来存储字段的数据类型

    Dim SqlString As String

    Dim OrderString As String

    Dim QueryString As String

    '这三个字符串变量用来存储查询语句

    'SqlString变量用来存储查询语句中除了ORDER BY子句之外的部分

    'OrderString变量用来存储ORDER BY子句

    'QueryString变量存储查询语句

    Private Sub 综合查询_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        '初始化列表“cmbBox查询表”

        Me.cmbBox查询表.Items.Add("读者信息")

        Me.cmbBox查询表.Items.Add("管理者信息")

        Me.cmbBox查询表.Items.Add("借阅信息")

        Me.cmbBox查询表.Items.Add("书籍信息")

        Me.cmbBox查询表.Items.Add("出版社信息")

        Me.cmbBox查询表.SelectedIndex = 0       '将列表的第一项设为选中项

    End Sub

    Private Sub cmbBox查询表_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbBox查询表.SelectedIndexChanged

        '在“cmbBox查询表”中选择一项作为查询表

        '则在“cmbBox查询依据”“cmbBox排序依据”将自动填充

        '查询表中的所有字段

        '保持数据表与字段二者的一致性

        Dim str_Table As String

        str_Table = Me.cmbBox查询表.SelectedItem

        If str_Table = "" Then Return

        Me.cmbBox查询依据.Items.Clear()

        Me.cmbBox排序依据.Items.Clear()

        Dim mySelectQuery As String = "SELECT * FROM " + str_Table

        Dim myCommand As New OleDb.OleDbCommand(mySelectQuery, Me.OleDbConnection1)

        If Me.OleDbConnection1.State = ConnectionState.Closed Then

            Me.OleDbConnection1.Open()

        End If

        Dim myReader As OleDb.OleDbDataReader

        myReader = myCommand.ExecuteReader

        Dim i As Integer

        For i = 0 To myReader.FieldCount - 1

            DataType(i) = myReader.GetFieldType(i).Name

            Me.cmbBox排序依据.Items.Add(myReader.GetName(i).ToString)

            Me.cmbBox查询依据.Items.Add(myReader.GetName(i).ToString)

        Next

        myReader.Close()

        Me.cmbBox查询依据.SelectedIndex = 0

        Me.cmbBox排序依据.SelectedIndex = 0

    End Sub

    Private Sub btn执行查询_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn执行查询.Click

        If DataType(Me.cmbBox查询依据.SelectedIndex) = "Int32" Then

            SqlString = "SELECT * FROM " + Me.cmbBox查询表.Text + " WHERE"

            SqlString = SqlString + Me.cmbBox查询依据.Text + " " + _

            Me.cmbBox运算符.Text + " " + "(" + Me.edit指定值.Text + ")"

        ElseIf DataType(Me.cmbBox查询依据.SelectedIndex) = "String" Then

            SqlString = "SELECT * FROM " + Me.cmbBox查询表.Text + " WHERE"

            SqlString = SqlString + Me.cmbBox查询依据.Text + " " + _

            Me.cmbBox运算符.Text + " " + "'" + Me.edit指定值.Text + "'"

        ElseIf DataType(Me.cmbBox查询依据.SelectedIndex) = "Date" Then

            SqlString = "SELECT * FROM " + Me.cmbBox查询表.Text + " WHERE"

            SqlString = SqlString + Me.cmbBox查询依据.Text + " " + _

            Me.cmbBox运算符.Text + "Cdate(" + Me.edit指定值.Text + ")"

        End If

        OrderString = Me.cmbBox排序依据.Text

        QueryData(SqlString, OrderString)

        If Me.cmbBox查询表.Text = "读者信息" Then

            Me.OleDbInsertCommand2.CommandText = QueryString

        End If

        If Me.cmbBox查询表.Text = "管理者信息" Then

            Me.OleDbInsertCommand3.CommandText = QueryString

        End If

        If Me.cmbBox查询表.Text = "借阅信息" Then

            Me.OleDbInsertCommand4.CommandText = QueryString

        End If

        If Me.cmbBox查询表.Text = "书籍信息" Then

            Me.OleDbInsertCommand5.CommandText = QueryString

        End If

        If Me.cmbBox查询表.Text = "出版社信息" Then

            Me.OleDbInsertCommand1.CommandText = QueryString

        End If

        Try

            Me.LoadDataSet()              '尝试加载数据集

            Me.DataGrid1.DataMember = Me.cmbBox查询表.Text

        Catch eLoad As System.Exception

            System.Windows.Forms.MessageBox.Show(eLoad.Message)

        End Try

    End Sub

End Class

更多相关推荐:
数据库课程设计报告之图书管理系统

数据库课程设计报告院系班级课题教师学生目录一需求分析3二系统结构设计3三数据库设计5四三层架构及设计10BookManageSystemModelBookManageSystemCommonBookManage...

数据库课程设计报告图书管理系统

数据库系统实验报告课程数据库系统院系计算机学院班级成绩学号姓名学号姓名指导教师李波日期年月日目录1数据库设计311需求分析312概念模式设计313关系模式设计42数据库编程621表的创建622数据的修改823查...

图书管理系统数据库课程设计报告书

电子商务数据库技术课程设计报告题目图书管理系统院系专业班级学号学生姓名指导教师说明1内容要求整个课程设计分为五部分分别为需求分析数据库系统设计数据库详细设计数据库实现和应用程序的设计与实现每部分按要求完成设计任...

图书管理系统数据库课程设计报告书

宁县和盛公曹小学图书管理系统一背景资料1图书馆有各种图书若干册2每种图书都有书名图书编号作者译者出版社定价和内容简介3借书证记录有借阅者的姓名工作单位住址联系电话等4凭借书证借书每次最多能借5本书借书期限最长为...

图书馆管理系统数据库课程设计报告

数据库原理与应用课程设计报告题目学生成绩管理系统专业班级电信08104班设计学生叶立辉喻娇学号04180402指导老师刘长青完成时间十八十九周湖南文理学院物理与电子科学学院目录一引言3二学生成绩管理系统概述3三...

数据库课程设计_图书管理系统

题目基于大学计算机科学与工程学院数据库课程设计报告书CS模式的图书管理系统的设计所学专业计算机软件与理论班级作者指导老师完成日期20xx年08月08日内容提要本文介绍了一个基于ClientServer模式的高校...

数据库课程设计:小型图书管理系统

Java应用课程设计项目名称:图书管理系统课程名称:Java应用项目作者:__________完成日期:20##年7月15日前言本系统是小型图书管理系统,专为个人设计。本系统启动后需要登陆,然后进入主界在这个界…

数据结构课程设计-图书管理系统

安徽省巢湖学院计算机与信息工程学院课程设计报告课程名称课题名称图书管理系统专业计算机科学与技术班级学号100120xx姓名王显龙联系方式150xxxxxxxx指导教师江家宝2011年12月28日1目录1数据结构...

图书管理系统 数据结构 课程设计

数据结构课程设计报告书一课程设计题目图书借阅管理系统二课程设计内容实现图书管理信息系统的设计一管理员功能登录输入管理员密码若密码错误则不得执行管理员操作添加新书增加新的图书资料同时需检查新书的图书编号是否已存在...

图书管理系统(含源代码)c语言 数据结构课程设计报告

算法与数据结构课程设计实验报告设计题目图书管理专业班级学生姓名学号指导教师20xx年7月烟台大学计算机学院一题目要求1目的要求本课程设计任务的目的是要求学生按照分析设计编码调试和测试的软件开发过程独立完成管理系...

数据结构课程设计图书管理系统报告

河南科技大学课程设计说明书课程名称题目院系班级学生姓名指导教师日期数据结构课程设计个人书籍管理系统的设计与实现数据结构课程设计任务书指导教师时间个人书籍管理系统的设计与实现一简介1设计目的进一步理解查找和排序在...

数据结构课程设计-图书馆管理系统

数据结构课程设计报告课题图书管管理系统专业班级学号姓名指导教师目录摘要11课程设计的目的和意义错误未定义书签11设计目的312设计意义错误未定义书签2需求分析错误未定义书签21所需系统422所要达到的程度43总...

数据库课程设计报告 图书管理系统(18篇)