当前位置:首页 > 宋鹏、王圣雄、柴汉鹏小组数据库应用系统开发实验报告
序号 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
共分享92篇相关文档