用户信息表 (tb_User) 帐号权限 系统编号 登录帐号 图1_12 用户信息实体E-R图
登录密码 在餐饮行业中,餐厅服务员起着及其重要的作用,但是由于服务人员数众多,如果不进行相应的信息记录,可能管理起来会非常困难。因此,需要对服务人员的详细信息进行记录。在数据库中建立一个志愿信息表用于存储所有服务人员的信息。支援信息实体E-R图图如1_13所示。
职员年龄 职员电话 职员性别 职员信息表 (tb_Waiter) 职员编号 系统编号 职员姓名 身份证号号码 图1_13 职员信息实体E-R图
1.4.3 数据库逻辑设计
根据设计好的E-R图在数据库中创建各表,系统数据库中各表的结构如下。 1. tb_Food(商品信息表)
tb_Food表用于保存所有商品信息,该表的结构如表1_4所示。
表1_4 商品信息表
字段名称 ID foodty foodnum foodname foodprice int char char varchar decimal 数据类型 1 10 10 50 9 字段大小 说明 系统编号 类别编号 商品代号 商品名称 商品价格 2. tb_FoodType(商品类别信息表)
tb_ FoodType表用于保存商品类别信息,该表的结构如表1_5所示。
表1_5 商品类别信息表 字段名称 ID foodtype int varchar 数据类型 4 50 字段大小 说明 系统编号 商品类别名称 3. tb_GuestFood(顾客消费信息表)
tb_GuestFood表用于保存顾客的消费信息,该表结构如表1_6所示。
表1_6 顾客消费信息表
字段名称 ID foodnum foodname foodsum foodallprice waitername beizhu zhuotai datatime int char varchar char decimal varchar varchar char varchar 数据类型 4 10 50 10 9 50 50 10 50 字段大小 说明 系统编号 商品代号 商品名称 消费数量 商品价格 操作员姓名 备注 消费桌台 消费时间 4. tb_Room(桌台信息表)
tb_Room表用于保存所有桌台信息,该表结构如表1_7所示。
字段名称 ID RoomName int char 数据类型 4 10 字段大小 说明 系统编号 桌台名称 RoomJC RommBJF RoomWZ RoomSZT RoomType RoomBZ RoomQT GuestName zhangdanDate Num WaiterName char decimal char char char varchar varchar varchar varchar int varchar 10 9 10 10 10 50 50 50 50 4 50 桌台简称 桌台包间费 桌台位置 桌台状态 桌台类型 桌台备注 桌台其他信息 顾客姓名 开台时间 顾客人数 操作员姓名 5. tb_User(用户信息表)
tb_User表用于保存所有系统用户信息,该表结构如表1_8所示。
表1_8 用户信息表
字段名称 ID UseName UserPwd power int varchar varchar char 数据类型 4 50 50 10 字段大小 说明 系统编号 用户登录名 用户登录密码 用户权限 6. tb_Writer(职员信息表)
tb_Writer表用于保存所有职员信息,该表结构如表1_9所示。
表1_9 职员信息表 字段名称 ID WaiterName CardNum WaiterNum Sex Age Tel
int varchar varchar char char char varchar 数据类型 4 50 50 10 10 10 50 字段大小 说明 系统编号 职员姓名 身份证号码 职员编号 性别 年龄 电话 1.5 公共类设计
为了节省系统资源,实现代码重用,可以在系统中设计一些公共类。本系统中创建了一个DBConn公共类,该类封装了用于连接数据库的方法。由于此类对数据库进行操作,所以需要引入一个命名空间,其主要代码如下:
自定义方法CyCon用于连接数据库,此方法返回一个SqlConnection对象,主要代码如下:
1.6 系统登录模块设计
1.6.1系统登录模块概述
为了使系统的安全性得到保障,大多数系统都开发登录模块。只有通过登录
模块,才能对登录用户进行验证,只有系统的合法用户才可以进入系统的主界面。登录模块运行结果如图1_14所示。
图1_14 登录模块运行结果
1.6.2 系统登录模块技术分析
运行本系统的登录模块,用户只需要输入用户名和密码,单击“登录”按钮进行验证。登录模块以登录的用户和密码作为搜索条件,在数据库中进行查询。
使用SqlDataReader对象的HasRows属性判断登录用户名和密码是否正确。下面介绍SqlDataReader对象的HasRows属性。
HasRows属性用于获取一个bool型的值,该值指示SqlDataReader是否包含一行或多行,语法如下:
public override bool HasRows{get;}
属性值:如果SqlDataReader包含一行或多行,则为true;否则为false。 例如,验证登录用户名和密码是否正确,可以通过以下代码实现:
1.6.3 系统登录模块实现过程
该模块需要使用的数据表示:tb_User 系统登录模块的具体实现步骤如下: (1)
新建一个Windows窗体,命名为frmLogin.cs,主要用于实现系统的登录功能,该窗体用的主要主要空间表如表1-10所示。
表1_10 登录窗体用到的主要控件
控件类型 控件ID txtName txtPwd btnSubmit btnCancel 主要属性设置 无 PasswordChar属性设置为* Text属性设置为“登录” Text属性设置为“取消” 用途 输入登录用户名 输入登录用户密码 登录 取消 (2)
由于餐饮系统使用Microsoft SQL Server 2012作为后台数据库,因为先要引用命名空间,以便在程序操作数据库,关键代码如下: