宋鹏、王圣雄、柴汉鹏小组数据库应用系统开发实验报告 联系客服

发布时间 : 星期六 文章宋鹏、王圣雄、柴汉鹏小组数据库应用系统开发实验报告更新完毕开始阅读

序号 1 2 3

楼层表:

字段含义 楼层 楼层经理 楼层电话 字段名 klc fm ftel 类型 varchar varchar char 宽度 2 10 15 是否 非空 Y* 备注 主码

采 购 单

字 段 名 GoodsID GoodsName eno GoodsPrice CompanyID GoodsTime 数据类型 nvarchar nvarchar varchar decimal varchar date 长 度 20 20 10 16,2 10 主 键 否 主 键 否 否 否 否 否 描 述 采购单号 采购物 员工号 采购价格 供应商号 采购时间 退 字 段 名 refundID kno refundno refundtime

款 单

主 键 否 主 键 否 否 否 描 述 退款单号 卡机号 退款金额 退款时间 数据类型 nvarchar varchar decimal date 长 度 10 10 16,2 4、

具体分工(对自己的模块详细介绍)

宋鹏(组长):

负责卡机表、登录表以及商家表的创建,维护。制作相应窗体对三个数据表的增删改查等功能,均有相应的实体完整性,参照完整性,用户自定义完整性的约束。卡机表和商家表窗体外观相近,但有自己特色功能。每个表都可以按任意条件进行查询,如果查询条件全部为空则显示所有数据库中的信息。如果只给出一个查询条件,则默认忽略其他属性。卡机表还有对营业额的统计功能。用户管理中保留用户boss只能修改密码不能被删除(否则会造成系统无法登陆)

制作登录窗体,只有正确输入用户名及密码才能登录系统,不输入信息或者输入错误都会有相应提示,普通使用者进入系统后不能使用用户维护功能。只有用户Boss才有对软件使用者进行管理的功能,进一步

5

保证了系统安全性。登录后进入MDI窗体界面,并有相应的欢迎信息,MDI窗体可以打开系统的各个子窗体使用相应功能。

同时MDI窗体退出有相应的提示,还有帮助,窗口显示等小功能。用户可以查询软件信息,并退出登录但不关闭系统。

柴汉鹏:

我负责员工表和楼层表的增删改查等操作的设计。

每个操作页面分为三部分:信息区,操作区和统计区。信息区显示员工或楼层的信息,操作区负责对数据的增删改查等操作,统计区中可以为某几项数据做出统计,其中楼层表内容比较简单,没有设计统计功能。

信息区主要利用ADO对象对数据进行访问,在相应的textBox中显示。其中有个“清空”按钮,主要是为查询时输入条件或添加数据时提供方便。

操作区有添加,修改,删除,查询四个按钮。使用C#语句和SQL语句进行对数据库的操作。添加时有各种完整性约束,比如性别只能为男或女;主码不能相同等。删除和修改时还会弹出提示框询问客户是否确定要进行该操作。查询时可以进行单条件查询,也可输入多个条件进行多条件查询。

统计区可以对几项数据进行统计,以方便客户掌握数据大体情况。

王圣雄:

由于我的基础较差,所以在此次的食堂管理系统中,我负责的是采购单和退款单,任务比较轻松。采购单和退款单中的各属性如上图数据表中显示。在两个表格中都成功实现了对数据的添加,修改,删除和查询的操作。在设计的过程中尽量了联系了实际,无论在采购单和退款单中,都要求数据尽量做到明细,这样才便于管理便于查询。对采购时间和退款时间同样提出了限制要求,因为食堂中食品的保存日期是有规定的,所以采购日期设置为了必填项目,而退款由于直接关系到食堂的利益,所以退款时间同样重要。两个表格中为了方便使用者查询,提供了不同的查询方式与查询条件。同时为了增加页面的友好性,让使用者有更多新意,两个表格的添加,修改,删除的按钮选用了不同的操作方式。

四、 【实验结果】

1、 开发与运行环境

Visual studio 2008 ,Sql server 2008 2、 核心代码及主要SQL语句

宋鹏:

(1)利用SqlDataReader 完成实体完整性,参照完整性约束:那对卡机表主码kno为例: ssql = \卡机表 where kno=\;

ssql += \ + textBox2.Text + \; cnn = null; cmd = null;

cnn = new

SqlConnection(ConfigurationManager.ConnectionStrings[\].ConnectionString); cnn.Open();

cmd = new SqlCommand(ssql, cnn); rd = cmd.ExecuteReader(); if (rd.HasRows)

6

{

MessageBox.Show(\此卡机已存在,请正确输入卡机号\); textBox2.Text = \; cnn.Close(); return; } else {

cnn.Close();

(2)利用一个模块完成各项用户自定义完整性,拿对数字检测为例:

bool isNum = false; try {

Convert.ToDecimal(textBox4.Text); isNum = true; } catch {

isNum = false; }

if (isNum == false) {

MessageBox.Show(\请正确输入卡机收入\); return; } else {

decimal a = Convert.ToDecimal(textBox4.Text); if (a < 0) {

MessageBox.Show(\请正确输入卡机收入\); return; }

}

多条件查询功能的完成,拿卡机窗体为例:

string sssql = \卡机表 where kno like '%\ + textBox2.Text + \ + textBox1.Text + \ + textBox3.Text + \ + comboBox1.Text + \ + textBox4.Text.ToString() + \;

SqlDataAdapter ad = new SqlDataAdapter(sssql,

ConfigurationManager.ConnectionStrings[\].ConnectionString); ds.Clear();

ad.Fill(ds, \卡机表\); bs.DataSource = ds; bs.DataMember = \卡机表\;

this.dataGridView1.DataSource = null;

7

bindingNavigator1.BindingSource = bs;

柴汉鹏:

SqlDataAdapter ad = new

SqlDataAdapter(sql,ConfigurationManager.ConnectionStrings[\].ConnectionString);

王圣雄:

数据库中创建表格:

create table 采购单 (

GoodsID nvarchar(20) primary key, GoodsName nvarchar(20), eno varchar(10),

GoodsPrice decimal(16,2) check(GoodsPrice>0), CompanyID varchar(10), GoodsTime date,

foreign key (eno) references 员工表(eno), foreign key (CompanyID) references 商家表(sno) )

create table 退款单 (

refundID nvarchar(10) primary key, kno varchar(10),

refundno decimal(16,2) check(refundno >0), refundtime date,

foreign key (kno) references 卡机表(kno)

)

添加:

string ssql = \采购单(GoodsID,GoodsName,eno,Goodsprice,CompanyID,Goodstime) values('\ + textBox1.Text + \ + textBox2.Text

+ \ + textBox3.Text + \ + textBox4.Text + \ + textBox5.Text + \ + textBox6.Text + \;

修改:

string update = \采购单 set GoodsName='\ + textBox2.Text + \ + textBox1.Text + \ + \采购单 set eno='\ + textBox3.Text + \where GoodsID='\ + textBox1.Text + \ + \采购单 set GoodsPrice=\ + textBox4.Text + \where GoodsID='\ + textBox1.Text + \

+ \采购单 set CompanyID='\ + textBox5.Text + \where GoodsID='\ + textBox1.Text + \ +

\采购单 set GoodsTime='\ + textBox6.Text + \ + textBox1.Text + \;

删除:

string delete = \采购单 where GoodsID=\ + textBox1.Text + \;

8