毕业设计(论文)KTV管理信息系统的设计与实现_第1页
毕业设计(论文)KTV管理信息系统的设计与实现_第2页
毕业设计(论文)KTV管理信息系统的设计与实现_第3页
毕业设计(论文)KTV管理信息系统的设计与实现_第4页
毕业设计(论文)KTV管理信息系统的设计与实现_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ktv管理信息系统的设计与实现1绪论1.1开发的背景和意义随着社会的发展和人民生活水平的提高,人们对精神文化生活的需求也在不断地增加。ktv的出现和发展在一定程度上满足了人们的这种需求,所以ktv行业迅速崛起并且占据了重要的市场。同时,在这个信息经济飞速发展的时代,计算机管理软件已经成为各个行业主要的管理工具,通过计算机管理软件的管理,可以大大提高管理的效率、安全性和准确性。当然,在ktv行业的日常管理中,它的管理人员也同样希望通过信息化的管理来提高工作效率、降低运营成本、规范经营模式,大大提高自身的服务档次,提升了企业的管理水平,从而增强企业的竞争力,达到管理的系统化、规范化和自动化。1.2

2、开发工具的选择(1)sql server 简介sql server 是一个关系数据库管理系统。它最初是由microsoft sybase 和ashton-tate两家公司共同开发,于1988 年推出了第一个os/2 版本。在windows nt 推出后,microsoft与sybase 在sql server 的开发上就分道扬镳了。microsoft 将sql server 移植到windows nt系统上,专注于开发推广sql server 的windows nt 版本。sybase 则较专注于sql server在unix 操作系统上的应用。sql server 2000, 是micros

3、oft 公司推出的sql server 数据库管理系统的新版本。该版本继承了sql server 7.0 版本的优点,同时又比它增加了许多更先进的功能,具有使用方便、可伸缩性好、与相关软件集成程度高等优点。可跨越从运行microsoft windows 98 的膝上型电脑,到运行microsoft windows 2000 的大型多处理器的服务器等多种平台使用。sql server 2000 的常见版本有企业版、标准版、个人版和开发者版。其主要用于程序员开发应用程序时,需要sql server 2000 作为数据存储设备。数据管理技术的发展,与硬件(主要是外存)、软件、计算机应用的范围有密切的

4、联系。数据管理技术的发展经过三个阶段:人工管理阶段、文件系统阶段和数据库阶段。人工管理阶段和文件系统阶段都有着相当多的缺陷,诸如数据冗余性 ,数据不一致性以及数据联系弱等等。也正是由于这些原因,促使人们研究新的数据管理技术,从而产生了数据库技术。当今数据库处理在信息系统的研究中一直是非常重要的主题,尤其是近年来,随着计算机管理系统的迅速发展,使得数据库技术之时成为最热门技术之一。数据库的设计和开发既包括艺术又包括工程。理解用户的需求,然后,把它们转变为有效的数据库设计是一个艺术过程。把设计转变为实际的数据库,并且这些数据库带有功能完备、高效能的应用,是一个工程过程。在数据库技术中,我们用模型的

5、概念描述数据库的结构与语义,对现实世界进行抽象,表示实体类型及实体间联系的模型称为“数据模型” 。目前广泛使用的数据模型分为两种类型:一种是独立于计算机系统的模型,完全不涉及信息在系统中的表示,只是用来描述某个特定组织所关心的信息结构,这类模型称为“概念数据模型” 。概念模型用于建立信息世界的数据模型,强调其语义表达功能,应该概念简单、清晰,易于用户理解,它是现实世界的第一层抽象,是用户和数据库设计人员之间进行交流的工具。其中使用广泛的模型是“实体联系模型” 。另一种数据模型是直接面向数据库的逻辑结构,它是现实世界的第二层抽象。这类模型涉及到计算机系统和数据库管理系统,又称为“结构数据模型”

6、。本系统采用了关系模型,关系模型主要是用二维表格结构表达实体集,利用主键和外键的连接进行表与表之间的连接。关系模型是由若干个关系模式组成的集合。关系模式相当于记录类型,它的实例称为关系,每个关系实际上是一张二维表格。关系模型和层次、网状模型的最大判别是用关键码而不是用指针导航数据,表格简单、用户易懂。用户对数据库的使用,是通过数据库管理系统提供的语言来实现的。关系数据库管理系统几乎都提供关系数据库标准语言sql。sql 的全称是structured query language,即结构化查询语言。sql语句可以从关系数据库中获得数据,也可以建立数据库、添加数据、修改数据。1986年ansi采用

7、sql语言作为关系数据库系统的标准语言,后被国际化标准组织(iso)采纳为国际标准。sql语言使用方便、功能丰富、简洁易学,因此得到广泛地应用。例如关系数据库产品db2、oracle等都实现了sql语言。这时,其它数据库产品厂家也纷纷推出各自的支持sql的软件或者与sql的接口软件。这样sql语言很快被整个计算机界所认可。sql语言是一种非过程化语言,它一次处理一个记录集合,对数据提供自动导航。sql语言允许用户在高层的数据结构上工作,而不对单个记录进行操作。sql语言不要求用户指定数据的存取方法,而是使用查询优化器,由系统决定对指定数据存取的最快速手段。当设计者在关系表上定义了索引时,系统会

8、自动利用索引进行快速检索,用户不需知道表上是否有索引或者有什么类型的索引等细节。(2)visual basic 简介visual basic是一种由微软公司推出的可视化开发工具,是windows环境下最受欢迎的程序设计工具之一。visual basic不仅继承了早期basic所具有的简单易用的特点,而且其编程系统采用了面向对象和时间驱动的编程机制,用一种巧妙的方法把windows的编程复杂性封装起来,提供了一种所见即所得的可视化界面设计方法。vb拥有图形用户界面(gui)和快速应用程序开发(rad)系统,可以轻易的使用dao、rdo、ado连接数据库,或者轻松的创建activex控件。程序员可

9、以轻松的使用vb提供的组件快速建立一个应用程序。ado(activex data object,activex数据对象)是一个基于ole db之上的对象模型,包含了所有可以被ole db标准接口描述的数据类型,通过ado内部的属性和方法提供统一的数据访问接口方法。ado对象模型具有可扩展性,当把数据库上层应用程序移植到不同的数据库平台上时,只需更换连接数据库的驱动程序,而不需要对上层应用程序作任何修改。ado向visual basic程序员提供了许多好处,包括易于使用、熟悉的界面、高速度以及较低的内存占用时综上我采用sql server 2000数据库和visual basic来实现该ktv管

10、理信息系统。2.需求分析和开发环境2.1 用户需求分析通过调查,根据用户的需要,系统应该具有以下功能:l 对ktv管理信息系统的登陆用户进行分类以及权限设置。l 展示ktv管理信息系统的主要界面。l 可以对房间信息进行查看功能,并且可以对其房间进行添加、修改、删除等操作。l 提供对会员信息进行查看功能,并且可以对其房间进行添加、修改、删除等操作。l 提供开房、预定、维修、打扫和结帐功能。l 提供预定单明细表、开房单明细表、维修单明细表。l 提供帐单、房间和会员查询功能。l 提供用户权限设置功能。l 提供用户管理功能。l 提供密码修改功能。l 提供用户查询功能。l 系统退出。2.2 可行性分析该

11、系统适用于中小型ktv的日常管理。界面简洁直观、功能齐全、操作方便。通过该软件可以对房间、会员、用户进行基本管理,同时可以很方便的对房间的基本业务进行操作,如开房、预定、结帐、打扫和维修。同时通过对不同用户进行权限设置,增加了数据的安全性。2.3 开发环境(1)硬件平台:q cpu:p41.8ghz 内存:256mb以上(2)软件平台:q 操作系统:windows xp/windows 2000q 数据库:sql server 20003.总体设计3.1 功能模块划分ktv管理信息系统是一个典型的数据库和vb综合的开发应用程序,该系统包括五个功能模块:基本信息功能模块、基本业务功能模块、查询统

12、计功能模块、系统设置功能模块和退出系统功能模块。如图3-1所示:基本信息ktv管理信息系统基本业务查询统计系统设置退出系统房间信息会员信息预定开房结帐维修打扫房间管理查询预订单明细表开房单明细表维修单明细表基本信息查询帐单查询房间查询房间状态查询房间类型查询会员查询用户权限设置用户管理密码设置用户查询图3-1 ktv管理信息系统的功能模块3.2逻辑结构设计3.2.1数据库表详细信息本系统涉及到的表分别是结帐单信息表(checkinfo)、会员信息表(memberinfo)、预定单信息表(destineinfo)、维修单历史表(repairhistroy)、维修单信息表(repairinfo)、

13、开房单历史表(openroomhistroy)、房间信息表(roominfo)、用户登陆信息表(userinfo)和房间消费信息表(roomconsumed)。各个表的详细信息如下:表1 结帐单信息表checkinfo字段名字段说明数据类型字段长度必填字段主键checkid结帐单编号char4是是roomid房间编号char2是否roomtype房间类型varchar10否否roomprice房间价格float8否否clientname客户名称varchar10否否agio折扣int4否否openroomtime开房时间datetime8是否endtime结帐时间datetime8是否prep

14、ay预付金额float8否否paymade付款方式varchar10否否roommoney消费金额float8是否opendate开房日期datetime8是否memberid会员编号char3否否表2 会员信息表memberinfo字段名字段说明数据类型字段长度必填字段主键memberid会员编号char3是是membername会员姓名varchar8否否tel1固定电话varchar20否否tel2手机varchar20否否address地址varchar30否否signcheck签单额度int4是否consumedtime消费次数int4是否consumedintegal消费积分flo

15、at8是否remake备注varchar50否否表3 预定单信息表destineinfo字段名字段说明数据类型字段长度必填字段主键destineid预定单编号char4是是clientname客户名称varchar10否否roomid房间编号char2是否roomtype房间类型varchar8否否roomprice房间价格float8否否clienttel客户电话varchar20否否clientcount人数int4否否openroomdate开房日期datetime8是否openroomtime开房时间datetime8是否waitor操作员varchar10否否prepay预付金额fl

16、oat8否否remake备注varchar50否否destinedate预定日期datetime8是否memberid会员编号char3否否表4 维修单历史表repairhistroy字段名字段说明数据类型字段长度必填字段主键repairhisid维修单编号char3是是roomid房间编号char2是否remake维修缘由varchar50否否remakeafter维修结果varchar50否否表5 维修单信息表repairinfo字段名字段说明数据类型字段长度必填字段主键repairid维修单编号char3是是roomid房间编号char2是否remake维修缘由varchar50否否表6

17、 开房单历史表openroomhistroy字段名字段说明数据类型字段长度必填字段主键orhistroyid结帐单编号char4是是roomid房间编号char2是否roomtype房间类型varchar10否否roomprice房间价格float8否否clientname客户名称varchar10否否agio折扣int4否否openroomtime开房时间datetime8是否endtime结帐时间datetime8是否paymade付款方式varchar10否否roommoney消费金额float8是否opendate开房日期datetime8是否memberid会员编号char3否否表7

18、 房间信息表roominfo字段名字段说明数据类型字段长度必填字段主键roomid房间编号char2是是roomname房间名称varchar20否否roomtype房间类型varchar10否否roomprice价格float8是否roomstate房间状态char6否否表8 用户登陆信息表userinfo字段名字段说明数据类型字段长度必填字段主键userid用户idchar2是是username用户姓名varchar8否否userpwd用户密码varchar10是否usertype用户权限代码int4否否remake用户类型varchar8否否表9 房间消费信息表roomconsumed字

19、段名字段说明数据类型字段长度必填字段主键roomconsumedid开房单编号char4是是roomid房间编号char2是否roomtype房间类型varchar10否否roomprice房间价格float8否否clientcount人数int4否否clientname客户名称varchar10否否opentime开房时间datetime8是否clienttel客户电话varchar20否否prepay预付金额float8否否agio折扣int4否否paymade付款方式varchar10否否opendate开房日期datetime8是否remake备注varchar50否否memberid

20、会员编号char3否否3.2.2数据库总体结构本系统采用了sql server 2000作为后台数据库的开发工具,本系统数据库名称为“ktvdb”, 其中共包含9张表。各个表之间的关系如图3-2。 图3-2 数据库ktvdb联系3.2.3系统中数据库的连接在本系统中,都是通过ado控件来与后台数据库进行连接的。下面是系统中的登陆界面中所涉及到连接数据库的代码:连接数据库sqlstr=provide=sqloledb.1;persist ecurity info=false;&userid=sa;initialcatalog=ktvdb;data source=(local) set g_dbc

21、onn = new adodb.connection 建立无源数据库连接g_dbconn.connectionstring=driver=sqlserver;server=(local);userid=sa;pwd=;database=ktvdbg_dbconn.open在该连接代码中,数据库连接的服务器名称为local,数据库名称为ktvdb,当系统中使用到了相应的表时,再通过代码与该表进行连接,再通过sql语句对数据库进行相应的操作。4.系统的设计与实现4.1 系统的功能模块介绍该系统主要包括以下功能模块:l 用户登录:实现对用户的登录验证,并且根据用户的权限来判断功能按钮的显示与否。l

22、基本信息:其中包括用户信息和会员信息,并且对相应的信息进行添加、删除、修改等操作。l 基本业务:包括预定、开房、维修和打扫功能。同时当用户选定某个房间时,通过鼠标右击可以调出相应的弹出菜单,这样就使操作更加方便快捷了。l 房间管理:在房间管理中,用户可以通过查看预定单明细表来了解当前的预定信息、通过查看开房单明细表来了解正处于开房状态的房间信息和通过查看维修单明细表来了解正在处于维修状态的房间的详细信息。l 查询统计:在查询统计中可以对帐单、房间和会员通过关键字进行具体的查询。l 系统设置:在系统设置中包括用户权限设置、用户管理、密码设置和用户查询等功能。l 退出系统:关闭所有界面,退出系统。

23、4.2系统的各个功能界面设计与实现在对ktv管理信息系统的功能进行简单介绍以后,下面就根据系统主界面菜单栏的顺序来分别介绍每个功能界面的设计与实现。4.2.1登录界面在进入系统主界面之前,首先要进入登陆界面,如图4-1。图4-1 系统登录界面在该系统中设计了三种用户,即管理员(1)、高级用户(2)和普通用户(0)。其中管理员具有最高权限,能够执行所有操作;高级用户不可以进行用户信息的修改;普通用户除不可以进行用户信息的修改外,还不可以对房间信息和会员信息进行任何修改。在登陆界面中通过sql语句与数据库建立连接以后,在用户输入用户id和用户密码后,系统将接收到的数据与数据库中userinfo表中

24、的记录进行比较,从而确定是否登陆成功。并将记录用户的权限(g_logineduser.type),以便交给主界面、会员信息窗体和房间信息窗来判断用户对各种功能的使用权限。4.2.2系统主界面菜单栏当用户信息的用户id和密码与数据库userinfo中的信息想匹配时,则进入系统的主界面,如图4-2:各个房间以相应的状态图标显示显示各种房间状态的房间个数图4-2 系统主界面在系统主界面中,我们可以看到在最上方是菜单栏,用户可以通过菜单栏中的各个选项来选择相应的操作。在主界面中,所有的房间都以自己的状态图标的形式显示出来。在主界面的下方可以看到处于各种房间状态的房间个数。主界面中最主要的是将所有房间显

25、示在界面中和将处于各种状态的房间个数在主界面的下方显示出来。将所有房间以房间状态的图标显示出来是通过showroomstatus函数来实现的。函数在数据库roominfo中读取房间编号、房间状态和房间名称的信息,通过房间编号来判定在msflexgrid控件中显示的位置,然后通过房间状态来确定所显示的图片文件。showroomstatus函数的代码如下:function showroomstatus() dim strroomname as string dim strroomstate as string dim iroomid as integer dim dr as new adodb.r

26、ecordset 定义新的ado对象 dim str as string dim irecord as integer dim i as integer 清空房间图标准备重新显示 msflexgrid1.clear 在数据库中读取房间信息,确定房间编号、房间状态和房间名称。str = select roomid,roomname,roomstate from roominfo dr.open str, g_dbconn, adopenstatic, adlockoptimistic irecord = dr.recordcount dr.movefirst for i = 0 to ireco

27、rd if dr.eof then exit function end if iroomid = dr(roomid).value strroomname = trim(dr(roomname).value) strroomstate = trim(dr(roomstate).value) 通过房间编号来确定显示的位置if (iroomid mod 10) 0 then me.msflexgrid1.row = int(iroomid / 10) me.msflexgrid1.col = (iroomid mod 10) - 1) elseif (iroomid mod 10) = 0 the

28、n me.msflexgrid1.row = int(iroomid / 10) - 1 me.msflexgrid1.col = 9 end if 根据房间状态读取所要显示的图片文件select case strroomstate case 空房 如果房间状态为空房 msflexgrid1.cellpicturealignment = flexaligncentertop set me.msflexgrid1.cellpicture = loadrespicture(kongfang, vbresbitmap) msflexgrid1.text = strroomname case 占用 m

29、sflexgrid1.cellpicturealignment = flexaligncentertop set me.msflexgrid1.cellpicture = loadrespicture(zhanyong, vbresbitmap) msflexgrid1.text = strroomname case 维修 msflexgrid1.cellpicturealignment = flexaligncentertop set me.msflexgrid1.cellpicture = loadrespicture(weixiu, vbresbitmap) msflexgrid1.te

30、xt = strroomname case 预定 msflexgrid1.cellpicturealignment = flexaligncentertop set me.msflexgrid1.cellpicture = loadrespicture(yuding, vbresbitmap) msflexgrid1.text = strroomname case 打扫 msflexgrid1.cellpicturealignment = flexaligncentertop set me.msflexgrid1.cellpicture = loadrespicture(dasao, vbre

31、sbitmap) msflexgrid1.text = strroomname end select dr.movenext next i dr.closeend functio 定义函数结束在主界面的下方显示处于各种房间状态的房间个数是通过showroomcount函数来实现的。代码如下:function showroomcount() 定义函数 dim rscount as new recordset 定义新的记录集对象 dim str as string str = select roomid from roominfo where & roomstate=空房查找空房 rscount.

32、open str, g_dbconn, adopenstatic, adlockoptimistic在标签中显示空房“” 间,其中多少间是通过rscount的recordcount方法来计算的me.labelkfcount.caption = 空房: & rscount.recordcount & 间 rscount.close str = select roomid from roominfo where & roomstate=占用 rscount.open str, g_dbconn, adopenstatic, adlockoptimistic me.labelzycount.capt

33、ion = 占用: & rscount.recordcount & 间 rscount.close str = select roomid from roominfo where & roomstate=预定 rscount.open str, g_dbconn, adopenstatic, adlockoptimistic me.labelydcount.caption = 预订: & rscount.recordcount & 间 rscount.close str = select roomid from roominfo where & roomstate=维修 rscount.ope

34、n str, g_dbconn, adopenstatic, adlockoptimistic me.labelwxcount.caption = 维修: & rscount.recordcount & 间 rscount.close str = select roomid from roominfo where & roomstate=打扫 rscount.open str, g_dbconn, adopenstatic, adlockoptimistic me.labeldscount.caption = 打扫: & rscount.recordcount & 间 rscount.clos

35、eend function同时在主界面中,我使用了time控件,它的功能是在一段时间内更新一次showroomstatus和showroomcount()函数,以随时显示最新的房间信息,在这里我设置了五秒更新一次。4.2.3房间信息管理界面在基本信息的下拉菜单中有房间信息选项,单击它就可以查看各个房间的详细信息,如图4-3所示:图4-3 房间信息界面房间信息界面将所有房间的信息都详细的显示在dategrid控件中,用户可以对房间进行添加、删除和修改操作。在这里要注意,当删除房间时,只能删除没有过任何使用记录的房间,因为其它表中有其相关的记录,如果要删除,必须先将所有相关记录删除。窗体中的添加、

36、修改和删除只对管理员和高级用户有效。对于普通用户,只能显示房间信息,无法实现添加、修改和删除操作,这三个按钮都变成灰色无法使用。这是因为在房间信息窗体的设计过程中,通过login窗体中记录的g_logineduser.type信息已经知道该用户的权限,在该窗体form的load事件中,已经设置普通用户是不能进行添加、删除和修改操作的。房间信息窗体的load事件的代码:private sub form_load() me.top = (screen.height - me.height) / 2 垂直方向居中 me.left = (screen.width - me.height) / 2 水平

37、方向居中 if g_logineduser.type = 0 then 如果用户的权限为0,即普通用户时,添加、删除和修改三个按钮显示为灰。me.command1.enabled = false me.command2.enabled = false me.command3.enabled = false end if 设置adodc连接字符串 adodc1.connectionstring = g_dbconn adodc1.commandtype = adcmdtable adodc1.recordsource = roominfo 连接的数据库 设置grid 与 adodc1关联,使其显

38、示当前的房间信息 set datagrid1.datasource = adodc1end sub4.2.4会员信息管理界面在基本信息中,选择下拉菜单中的会员信息就可以查看所有会员的基本信息。如图4-4所示。图6 会员信息界面会员信息窗体能显示会员的详细信息,并有添加会员、修改会员信息、删除会员的功能。窗体中的添加、修改和删除功能也同样只针对管理员和高级用户有效。其实现和房间信息的实现技术相同,连接的表是memberinfo。4.2.5预定、开房、结帐、维修和打扫界面在该系统中,所涉及到的房间业务包括预定、开房、结帐、维修和打扫。下面将分别介绍其功能的实现。(1)预定用户可以通过预定单在预定单

39、明细表(destineinfo)中添加新的预定信息。在预定单中,通过选择会员单选框来从会员信息表中读取会员信息,并且自动生成可选的会员编号,并且通过选择的会员编号显示会员姓名、客户电话。同理,如果选择了房间编号,则系统自动填充房间类型和房间价格。预定单界面如图4-5,当选择会员单选框时的预定单界面如图4-6:图4-5 预定单界面图 图4-6 有会员信息的预定界面自动生成下拉列表框中的代码如下:private sub form_load() dim dbstr as string dim adddestineid as new adodb.recordset 建立新的ado对象 dim i as

40、 integer dim sdestinedid as string界面显示位置 me.top = (screen.height - me.height) / 2 垂直方向居中 me.left = (screen.width - me.height) / 2 水平方向居中 隐藏会员信息和预订单编号信息 me.label1.visible = false me.combmemid.visible = false me.label2.visible = false 当前日期 me.labeldate.caption = date 自动生成预定单编号 dbstr = select destineid

41、 from destineinfo adddestineid.cursortype = adopenstatic adddestineid.cursorlocation = aduseclient adddestineid.open dbstr, g_dbconn, adopenforwardonly, adlockoptimistic if adddestineid.eof then sdestinedid = 0001 me.textdestineid.text = sdestinedid else adddestineid.movelast i = adddestineid.fields

42、(destineid).value + 1 if i = 10 & i 0 then adors.movefirst do while not adors.eof combroomid.additem adors.fields(0).value adors.movenext loop 循环 else msgbox 无空房! exit sub end if adors.close set adors = nothing 从数据库中读取数据写入会员编号下拉列表框 dim adoms as new adodb.recordset dbstr = select memberid from member

43、info adoms.open dbstr, g_dbconn, adopenstatic, adlockreadonly if adoms.recordcount 0 then adoms.movefirst adoms.movenext do while not adoms.eof combmemid.additem adoms.fields(0).value adoms.movenext loop end if adoms.close set adoms = nothingend sub在填写完预定单提交成功后,系统就要修改房间状态为预定,并且要把预定信息写入destioninfo表中。

44、代码如下:操作数据库添加预定信息sqlstr=insertintodestineinfo(destineid,clientname,roomid,&roomtype,roomprice,clienttel,clientcount,openroomdate,&openroomtime,waitor,prepay,remake,destinedate,memberid)& values( & trim(me.textdestineid.text) & & , & trim(me.textclientname.text) & , & sroomid & & , & trim(me.combroomt

45、ype.text) & & , & trim(me.combroomprice.text) & & , & trim(me.textclienttel.text) & & , & trim(me.textcount.text) & & , & me.dtpicker1.value & & , & stime & , & trim(me.combwaitor.text) & & , & b & , & me.textremake.text & & , & trim(me.labeldate.caption) & , & smemberid & ); g_dbconn.execute sqlstr

46、 执行其sql语句操作 str = update roominfo set roomstate=预定 where roomid= & sroomid & 更新房间状态 g_dbconn.execute str msgbox 预定成功!(2)开房在开房单界面中,我们可以通过开房单的填写,将该信息提交给开房单明细表(roomconsumed),更改房间状态为占用。这里所用到的技术在预定中已经进行了介绍,就不再解释了,开房单界面如图4-7,有会员信息的开房单界面如图4-8。图4-7 开房单界面 图4-8 有会员信息的开房界面(3)结帐结帐窗体用来计算房间消费信息,在结帐事件中涉及到了调用数据库中的存

47、储过程。存储过程是一组完成特定功能的sql语句集,经过编译后存储在数据库中,程序通过存储过程的名字调用执行它。存储过程能减少网络流量,增强代码的重用性,提高执行的速度和保证安全性。本系统的计算房费的存储过程代码为:create procedure up_checkcopentime datetime, 定义变量cclosetime datetime,croomid char (4),cprice float (8),cagio int,cprepay int,cmoney float (8) output 输出变量asselect cprice=roomprice from roominfo

48、where roomid=croomid selectcopentime=opentime from roomconsumed where roomid=croomidselectcprepay=prepay from roomconsumed where roomid=croomidselectcclosetime=getdate()select cmoney =(datediff(mi,copentime,cclosetime) 计算公式*cprice/60.0*cagio/100.0go在结帐时调用up_check存储过程的代码如下:调用存储过程 dim strs as string d

49、im adoconn as new adodb.connection connection 对象代表了打开与数据源的连接。 dim adocomm as new adodb.command command 对象定义了将对数据源执行的指定命令。 adoconn.connectionstring = g_dbconn 建立与数据库的连接 adoconn.open 打开数据库 set adocomm.activeconnection = adoconn 指示指定的 command对象当前所属的 connection对象。 adocomm.commandtext = up_check 设置comman

50、d对象源。 adocomm.commandtype = adcmdstoredproc 通知提供者commandtext属性有什么,它可能包括command对象的源类型。设置这个属性优化了该命令的执行。 获得数据 adocomm.parameters.item(copentime).value = trim(me.textortime.text) adocomm.parameters.item(cclosetime).value = time adocomm.parameters.item(croomid).value = trim(me.combrid.text) adocomm.parameters.item(cprice).value = trim(me.combrprice.text) adocomm.parameters.item(cagio).value =

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论