第13章用C#+SQL Server2005开发宾馆管理信息系统_第1页
第13章用C#+SQL Server2005开发宾馆管理信息系统_第2页
第13章用C#+SQL Server2005开发宾馆管理信息系统_第3页
第13章用C#+SQL Server2005开发宾馆管理信息系统_第4页
第13章用C#+SQL Server2005开发宾馆管理信息系统_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

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

文档简介

1第13章用C#+SQLServer2005开发宾馆管理信息系统第13章用C#+SQLServer2005开发

宾馆管理信息系统13.1SQLServer2005后台数据库的设计与实现13.2C#前台界面的设计与实现2313.1SQLServer2005后台数据库的设计与实现13.1.1创建宾馆管理数据库13.1.2创建信息表13.1.3创建关系图13.1.4创建视图41.实验内容使用SQLServerManagementStudio管理控制台(企业管理器)创建名为“HotelManage”的数据库。2.实验步骤(1)打开SQLServerManagementStudio管理控制台(企业管理器),出现如图13-1所示的界面。单击左端“+”号层层展开直到在屏幕上出现“数据库”、“系统数据库”、“master”、“model”、“msdb”、“tempdb”等项。13.1.1创建宾馆管理数据库5

图13-1SQLServerManagementStudio管理控制台界面6(2)右击“数据库”选项,从弹出的快捷菜单中选择“新建数据库”选项,如图13-2所示。此时会出现“新建数据库”对话框,如图13-3所示。在“数据库名称”文本框中输入数据库名“HotelManage”,单击“确定”按钮,便以默认的参数创建了一个名为“HotelManage”的数据库。(3)右击新创建的HotelManage数据库,从弹出的菜单中选择“属性”选项,如图13-4所示,进入“数据库属性”对话框,在该对话框内选择“文件”选项页,观察“数据库文件”等选项的设置参数,如图13-5所示。7

图13-2数据库操作快捷菜单8

图13-3“新建数据库”对话框9

图13-4HotelManage数据库快捷菜单10

图13-5“数据库属性”对话框111.实验内容使用SQLServerManagementStudio管理控制台(企业管理器),在“HotelManage”数据库中创建“BookIn”、“Custom”、“Client”、“ClientRecord”、“Room”、“RoomType”6张表。其中:BookIn(客房预订表)用来存储一个客户预订客房基本信息;Custom(顾客入住表)用来存储客户入住的基本信息;Client(客户表)用来存储客户的基本信息;ClientRecord(客户记录表)用来存储客户入住期间的消费信息;Room(客房表)用来存储宾馆现有的客房信息;RoomType(客房类型)用来存储宾馆客房的所有类型。通过这6张表,可以建立一个简单的宾馆信息管理系统。6张表的表结构如下(见表13-1~表13-6)。13.1.2创建信息表12

表13-1客房预订表(BookIn)表结构字

段数据类型长

度是否允许空值备

注BookInNOChar10否主键CustomIDChar16否CustomNameVarchar10否RoomIDChar4否InDateDatetime8否RemarkVarchar20是CheckDateDatetime8是CheckSumMoney8是13

表13-2顾客入住表(Custom)表结构字

段数据类型长

度是否允许空值备

注CustomIDChar16否主键CustomNameVarchar10是InDateDatetime8是CheckDateDatetime8是14

表13-3客户表(Client)表结构字

段数据类型长

度是否允许空值备

注ClientIDChar16否主键ClientNameVarchar20是SexChar2是做检查约束NativePlaceVarchar50是15

表13-4顾客记录表(ClientRecord)表结构字

段数据类型长

度是否允许空值备

注ClientIDChar16否主键RoomIDChar4否主键DateInDatetime8否主键CheckDateDatetime8是TotalMoneyMoney8是RemarkVarchar50是16

表13-5客房表(Room)表结构字

段数据类型长

度是否允许空值备

注RoomIDChar4否主键RoomTypeNameVarchar20是RoomPositionVarchar20是PeopleNumSmallint2是BedNumSmallint2是RemarkVarchar50是FactPeopleNumSmallint2是17

表13-6客房类型表(RoomType)表结构字

段数据类型长

度是否允许空值备

注RoomTypeNameVarchar

har20否主键AreaSmallint2是BedNumSmallint2是PriceMoney8是AirConditionBit1是PhoneBit1是TelevisionBit1是ToiletBit1是182.实验初始数据:表13-7客房预订表(BookIn)初始记录BookInNOCustomID

CustomNameRoomIDInDateRemarkCheckDateCheckSumIN0001李梅001窗户朝南200NO0002王江002窗户朝北300表13-8顾客入住表(Custom)初始记录CustomID

CustomNameInDateCheckDate0001李梅0002和与19表13-9客户表(Client)初始记录ClientIDClientNameSexNativePlace0001张小华男上海市0002王燕女北京市表13-10顾客记录表(ClientRecord)初始记录ClientIDRoomIDDateInCheckDateTotalMoneyRemark000113013000002130210020表13-11客房表(Room)初始记录RoomIDRoomTypeNameRoomPositionPeopleNumBedNumRemarkFactPeopleNum1301标准间一层11窗户朝南11302标准间一层11窗户朝北01303双人间一层22窗户朝南11304双人间一层22窗户朝北21305双人间一层22窗户朝南02201标准间二层11窗户朝南02202单人间二层11窗户朝北03101双人间三层22窗户朝北221表13-12客房类型表(RoomType)初始记录RoomTypeNameAreaBedNumPriceAirConditionPhoneTelevisionToilet标准间1212001111单人间101501111双人间1021001110四人间104500000套间2022001111223.实验步骤(1)打开SQLServerManagementStudio管理控制台(企业管理器),在树形目录中找到“HotelManage”数据库并展开它,选择数据库对象“表”,右击“表”对象,则弹出其快捷菜单,如图13-6所示。(2)从弹出的快捷菜单中选择“新建表”选项,则在窗口中部出现“表设计器”窗口,如图13-7所示。该窗口的上半部分是一个表格,在这个表格中输入“BookInNO”、“CustomID”、“CustomName”、“RoomID”、“InDate”等列的属性,表格的每一行对应一个列定义,其含义如下:23图13-6“表”快捷菜单24图13-7表结构设计窗口25①列名:合法的列名称,如“BookInNO”、“CustomID”等。②数据类型:数据类型是一个下拉列表框,包括了所有的系统数据类型和用户自定义的数据类型,可从中选择需要定义的数据类型。数据类型后面括号内的数值表示该字段选择数据类型需要占用内存的字节数。③允许空:单击可以切换是否允许该列数值为空值的状态,勾选说明允许为空值,空白表示不允许为空值,默认状态表示允许为空值。26(3)单击“BookInNO”列,在工具栏中单击“钥匙”图标按钮,可将“BookInNO”字段设置为主键(主关键字),此时“BookInNO”前将出现一钥匙图标,如图13-7所示。注意:主关键字必须为“非空”字段。(4)将表结构输入完后,单击“保存”按钮将出现“选择名称”对话框,如图13-8所示。输入表名“BookIn”后,单击“确定”按钮就完成了BookIn表结构的设计,创建了一张空表。图13-8输入表名27(5)按步骤(2)~(4)的方法,按表13-2、表13-3、表13-4、表13-5、表13-6的要求,分别创建客户入住表“Custom”、客户表“Client”等表结构。(6)返回SQLServerManagementStudio管理控制台(企业管理器)面板,在对象资源管理器显示窗口内找到并右击“BookInNO”表名,从弹出的菜单中,选择“打开表”命令,如图13-9所示。(7)根据表13-7所列出的实验数据,在出现在窗口中部的表数据编辑窗口中向“BookIn”表中添加记录,如图13-10所示。(8)按步骤(6)~(7)所示的方法,依次将表13-8到表13-12所列出的数据输入到“Custom”、“Client”和“ClientRecord”等表中。28图13-9打开表菜单29图13-10表数据录入及维护窗口301.实验内容使用SQLServerManagementStudio管理控制台(企业管理器)建立4个关系表的关系图,并保证表中数据的唯一性。2.实验步骤(1)进入SQLServerManagementStudio管理控制台(企业管理器),在对象资源管理器的树形目录中找到“HotelManage”数据库并展开它,选择数据库对象“数据库关系图”,右击“数据库关系图”选项,则弹出一快捷菜单,如图13-11所示。13.1.3创建关系图31图13-11新建关系图弹出菜单32(2)在弹出的快捷菜单中选择“新建数据库关系图”命令,则弹出“添加表”对话框,如图13-12所示。在这个对话框中选择表“Client”、“ClientRecord”、“Room”和“RoomType”,并单击“添加”按钮,将选中的表添加到关系图中。单击“关闭”按钮关闭“添加表”对话框。(3)在SQLServerManagementStudio管理控制台(企业管理器)中关闭“对象资源管理器”和“属性”面板,会完整出现“关系图”窗口,如图13-13所示。33图13-12“添加表”对话框34图13-13关系图窗口35(4)在“关系图”窗口内,将光标放在Client表中“ClientID”字段前的标识处并单击,此时“ClientID”字段呈被选中状态,拖动鼠标到表ClientRecord上,松开鼠标左键,将弹出“表和列”对话框,如图13-14所示。在“主键表”和“外键表”中都选择“ClientID”字段,然后单击“确定”按钮。(5)在出现的“外键关系”对话框中确认“在创建或重新启用时检查现有数据”、“强制用于复制”和“强制外键约束”后面的选项值为“是”。如图13-15所示。36图13-14表和列对话框37图13-15外键关系对话框38(6)按上述(4)~(5)步的方法,建立其它表的主外键关系,生成关系图如图13-16所示。(7)单击“保存”按钮,在弹出的“选择名称”对话框中输入新关系的名称,如图13-17所示,单击“确定”按钮,完成新关系图的建立。39图13-16创建关系后的窗口40图13-17保存数据库关系图411.实验内容使用SQLServerManagementStudio管理控制台(企业管理器)建立名为View1_ClientRecord视图,作为客户记录的操作对象。2.实验步骤(1)打开SQLServerManagementStudio管理控制台(企业管理器),在对象资源管理器的树形目录中找到“HotelManage”数据库并展开它,选择数据库对象“视图”,右击“视图”选项,则弹出快捷菜单,如图13-18所示。13.1.4创建视图42图13-18视图快捷菜单43(2)在弹出的快捷菜单中选择“新建视图”选项,将会弹出“添加表”对话框,如图13-19所示。在这个对话框中,选择表“Client”、“ClientRecord”、“Room”和“RoomType”,单击“添加”按钮,添加后关闭“添加表”对话框,返回视图窗口。(3)关闭SQLServerManagementStudio管理控制台(企业管理器)的“对象资源管理器”和“属性”面板,会出现完整的“视图”窗口,如图12-20所示。在4个表的字段前可通过单击字段左边的复选框选择要添加到视图中的字段(不同表中名称相同的字段只勾选一次)。44图13-19“添加表”对话框45图13-20添加表后的新视图窗口46(4)单击“保存”按钮,在弹出的“选择名称”对话框中输入新视图的名称,如图13-21所示,单击“确定”按钮,完成新视图的建立。此外还需建立ClientRecordName(“ClientRecord”表的clientname字段和“Client”表的所有字段组成)和RoomPrice(“Room”表的RoomId、RoomTypeName字段和“RoomType”表的Price字段组成)两个视图,过程同视图View1_ClientRecord。图13-21保存视图4713.2C#前台界面的设计与实现13.2.1设计主窗体13.2.2实现客房管理13.2.3实现客房标准管理13.2.4实现客房查询13.2.5实现客户查询13.2.6实现客户入住13.2.7实现客户结算13.2.8实现系统退出481.实验内容使用VisualC#设计与数据库相关联的“宾馆管理系统”的前台界面。2.实验步骤(1)设计菜单启动VisualC#程序,新建一个Windows窗体应用程序工程,默认名为“WindowsFormsApplication1”。在该工程中会自动创建一个窗体,默认名为“Form1”,在该窗体中使用C#提供的“工具栏”设计主窗体,如图13-22所示,命名主窗体为MainForm。13.2.1设计主窗体49图13-22设计宾馆管理系统界面50(2)添加代码在该窗口中,水平主菜单有7个“菜项”:“客房管理”、“客房查询”、“客房类型管理”、“客户查询”、“客户入住”、“客户结算”和“退出系统”。各菜单项的功能和代码如下:①主菜项“客房管理”:用于打开“客房管理”窗口,为它添加Click事件。并添加如下代码:FormRoomForm=newRoom(); for(intx=0;x<this.MdiChildren.Length;x++){FormtempChild=(Form)this.MdiChildren[x];

tempChild.Close();}

RoomForm.MdiParent=this;//设置此窗体的当前多文档界面(MDI)父窗体

RoomForm.WindowState=FormWindowState.Maximized;

RoomForm.Show(); break;51②主菜项“客房查询”:用于打开“客房查询”窗口,为它添加Click事件。并添加如下代码:FormRoomSearchForm=newRoomSearch();

for(intx=0;x<this.MdiChildren.Length;x++) { FormtempChild=(Form)this.MdiChildren[x];

tempChild.Close(); }

RoomSearchForm.MdiParent=this;//设置此窗体的当前多文档界面(MDI)父窗体

RoomSearchForm.WindowState=FormWindowState.Maximized;

RoomSearchForm.Show(); break;52③主菜项“客房类型管理”:用于打开“客房类型管理”窗口,为它添加Click事件。并添加如下代码:FormRoomTypeForm=newRoomType(); //创建RoomType的实例

for(intx=0;x<this.MdiChildren.Length;x++) { FormtempChild=(Form)this.MdiChildren[x];

tempChild.Close(); } //关闭主窗体的其他子窗体

RoomTypeForm.MdiParent=this; //设置主窗体为父窗体

RoomTypeForm.WindowState=FormWindowState.Maximized; //最大化子窗体

RoomTypeForm.Show(); break;//跳出Switch53④主菜项“客户查询”:用于打开“客户查询”窗口,为它添加Click事件。并添加如下代码:FormClientSearchForm=newClientSearch();

for(intx=0;x<this.MdiChildren.Length;x++) { FormtempChild=(Form)this.MdiChildren[x];

tempChild.Close(); }

ClientSearchForm.MdiParent=this;//设置此窗体的当前多文档界面(MDI)父窗体

ClientSearchForm.WindowState=FormWindowState.Maximized;

ClientSearchForm.Show(); break;54⑤主菜项“客户入住”:用于打开“客户入住”窗口,为它添加Click事件。并添加如下代码:FormClientBookInForm=newClientBookIn();for(intx=0;x<this.MdiChildren.Length;x++){FormtempChild=(Form)this.MdiChildren[x];

tempChild.Close();}

ClientBookInForm.MdiParent=this;//设置此窗体的当前多文档界面(MDI)父窗体

ClientBookInForm.WindowState=FormWindowState.Maximized;

ClientBookInForm.Show();break;55⑥主菜项“客户结算”:用于打开“客户结算”窗口,为它添加Click事件。并添加如下代码:FormClientCheckForm=newClientCheck();for(intx=0;x<this.MdiChildren.Length;x++){FormtempChild=(Form)this.MdiChildren[x];

tempChild.Close();}

ClientCheckForm.MdiParent=this;//设置此窗体的当前多文档界面(MDI)父窗体

ClientCheckForm.WindowState=FormWindowState.Maximized;

ClientCheckForm.Show();break;56⑦主菜项“退出系统”:用于打开“退出系统”窗口,单击退出系统。并添加如下代码:Application.Exit(); break;571.实验内容实现前台界面与SQLServer数据库的连接,添加代码实现“宾馆管理系统”的“客房管理”部分的功能。2.实验步骤(1)设计“客房管理”主窗体,界面如图13-23所示,命名为Room。(2)添加控件对象的属性如表13-13所示。13.2.2实现客房管理58图13-23客房管理界面59表13-13主要控件对象的属性列表控件名属

性设

置Label1Text房间号(name)Label1Label2Text客房类型(name)Label2Label3Text额定人数(name)Label3Label4Text额定床数(name)Label4Label5Text备注(name)Label5Label6Text房间楼层(name)Label6Label7Text输入房间号(name)Label760控件名属

性设

置Button1Text查找(name)btnSearchButton2Text开始(name)btnStartButton3Text新建(name)btnNewButton4Text删除(name)btnDeleteButton5Text取消(name)btnCancleButton6Text保存(name)btnSaveButton7Text退出(name)btnExit61控件名属

性设

置ColumnHeader(name)(清空)ListView1columnHeader1房间号columnHeader2房间类型columnHeader3房间楼层columnHeader4额定人数columnHeader5额定床数columnHeader6备注62(3)通过ADO.NET访问SQLServer数据库,具体步骤如下。①添加数据库连接。如图13-24所示,在工具栏中单击“工具”菜单项,在弹出的快捷菜单中选择“连接到数据库”命令,则弹出“添加连接”对话框,如图13-25所示。在这个对话框中的“服务器名”列表框中输入“localhost”;选择“使用SQLServer身份验证”,在“用户名”文本框中输入“sa”,并选择空密码,在“选择或输入一个数据库名”列表框中选择HotelManage数据库,单击“测试连接”按钮,如果正确,则连接成功;如果不正确,系统会指出具体的错误,用户应该重新检查配置的内容是否正确。63②在Connection.cs文件中添加数据库连接代码;get{return"datasource=(local);initialcatalog=HotelManage;integratedsecurity=SSPI;";}③在Room.cs中添加初始化数据库代码;InitializeComponent(); this.sqlConnection1=newSqlConnection(HotelManage.Connection.ConnString); this.sqlCommand1=newSqlCommand(); this.sqlCommand1.CommandType=CommandType.Text; this.sqlCommand1.Connection=this.sqlConnection1;64图13-24选择连接到数据库65图13-25“数据连接属性”对话框66

(4)使用程序代码来实现按钮的功能,具体步骤如下:①实现“新建”操作:当用户单击“新建”按钮时,可在界面中添加新记录,该操作与“保存”按钮的功能结合使用。②实现“删除”操作:当用户单击“删除”按钮时,允许用户删除当前界面上显示的记录信息。该操作与“保存”按钮的功能结合使用。③实现“查询”操作:当用户单击“查询”按钮时,显示查询界面。通过“开始”操作实现查询功能。④实现“保存”操作:当用户单击“保存”按钮时,允许用户将之前的操作(添加、删除和修改)结果保存到“HotelManage”数据库中的“Room”表中。

⑤实现“取消”操作:当用户单击“取消”按钮时,取消当前操作。⑥实现“退出”操作:当用户单击“退出”按钮时,关闭当前界面,返回到上一层界面。(相关程序代码详见教材)67(5)使用程序代码来实现ListView1的功能。

程序代码见教材(6)设置表13-13中其他控件的属性,设置完成后,在C#环境中运行程序,可看到“客房管理”窗口如图13-26所示。68

图13-26客房管理运行界面691.实验内容实现前台界面与SQLServer数据库的连接,添加代码实现“宾馆管理系统”的“客房标准管理”部分的功能。2.实验步骤(1)设计“客房标准管理”主窗体,界面如图13-27所示,命名为RoomType。(2)在RoomType窗体中设置控件属性,添加控件对象的属性如表13-14所示。(3)使用代码来实现按钮的功能,该步骤同“客房管理”部分中的第3、4步基本相同,可参照完成设计。设置完成后的界面如图13-28所示。13.2.3实现客房标准管理70图13-27客房标准管理界面布局71表13-14主要控件对象的属性列表控件名属

性设

置Label2Text名称(name)Label2Label3Text面积(name)Label3Label4Text床位(name)Label4Label5Text价钱(name)Label5Label7Text输入房间类型(name)Label772控件名属

性设

置Button1Text查找(name)btnSearchButton2Text开始(name)btnStartButton3Text新建(name)btnNewButton4Text删除(name)btnDeleteButton5Text取消(name)btnCancleButton6Text保存(name)btnSaveButton7Text退出(name)btnExit73图13-28客房标准管理运行界面741.实验内容实现前台界面与SQLServer数据库的连接,添加代码实现“宾馆管理系统”的“客房查询”部分的功能。2.实验步骤(1)设计“客房查询”主窗体,界面如图13-29所示,命名为RoomSearch。(2)在RoomSearch窗体中设置控件属性,添加控件对象的属性如表13-15所示。13.2.4实现客房查询75图13-29客房查询管理界面布局76表13-15主要控件对象的属性列表控件名属

性设

置Label1Text房间号(name)Label1Label2Text客房类型(name)Label2Label3Text额定人数(name)Label3Label4Text实际人数(name)Label4Label5Text其他条件(name)Label5Label6Text房屋楼层(name)Label677控件名属

性设

置Button1Text查找(name)btnSearchButton2Text空房(name)btnEmptyRoomButton3Text未满(name)btnNotFullButton4Text入住(name)btnBookInButton5Text取消(name)btnCancle78控件名属

性设

置ColumnHeader(name)(清空)ListView1columnHeader1房间号columnHeader2房间类型columnHeader3房间楼层columnHeader4额定人数columnHeader5额定床数columnHeader6备注79(3)使用程序代码来实现按钮的功能,具体步骤如下:①实现“空房”操作:当用户单击“空房”按钮时,显示所有空房。②实现“未满”操作:当用户单击“未满”按钮时,显示所有未满房间。③实现“入住”操作:当用户单击“入住”按钮时,确定客户入住。

(相关程序代码详见教材)

(4)使用代码来实现其他按钮的功能,该步骤同“客房管理”部分中的第3、4步基本相同,可参照完成设计。设置完成后的界面如图13-30所示。80图13-30客房查询运行界面811.实验内容实现前台界面与SQLServer数据库的连接,添加代码实现“宾馆管理系统”的“客户查询”部分的功能。2.实验步骤(1)设计“客户查询”主窗体,界面如图13-31所示,命名为ClientSearch。(2)设置控件属性,添加控件对象的属性如表13-16所示。13.2.5实现客户查询82图13-31客户查询界面布局83表13-16主要控件对象的属性列表控件名属

性设

置Label1Text客户号(name)Label1控件名属

性设

置Button1Text查找(name)btnSearchButton2Text全部(name)btnEmptyRoomButton3Text结账(name)btnCheckButton4Text在住(name)btnInRoomButton5Text取消(name)btnCancle84控件名属

性设

置ColumnHeader(name)(清空)ListView1columnHeader1客户IDcolumnHeader2客户姓名columnHeader3房间号columnHeader4房间类型c

温馨提示

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

评论

0/150

提交评论