基于C#的糖水铺数据管理系统Word文档格式.docx
《基于C#的糖水铺数据管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于C#的糖水铺数据管理系统Word文档格式.docx(30页珍藏版)》请在冰豆网上搜索。
五、应用系统设计(前台)14
5.1前台登陆界面14
5.2、用户管理菜单下的功能窗体19
5.3.1、产品展示的功能窗体20
5.3.2、添加产品的功能窗体21
5.3.3、产品修改菜单下的功能窗体22
5.3.4、产品删除的功能窗体23
5.3.5、查询产品的功能窗体24
5.4.1、销售记录的功能窗体25
5.4.2产品销售26
5.5备份与恢复27
5.5.1、创建备份设备27
5.5.2、完全备份28
5.5.3、数据库恢复28
六、总结29
一、概述
开发背景和意义
随着数字化时代的发展,数字化管理的已经是广泛应用,有效地来利用计算机来管理企业和商铺,是数据库技术所产生的作用。
为了能使管理人员方便操作,我们建立的系统需要有的功能是:
用户管理、产品管理、销售管理、职工管理等。
还需要对每个管理的模块再进行添加、删除、修改、查询的各项操作,以便于高效化地管理各项数据。
随着连锁店式管理的推行,大量的数据需要依靠计算机来进行有效的管理,设计糖水铺数据库管理系统就是为了精简数据管理,人们可以使用这个系统方便地对每间店铺的数据进行管理,从店铺到店员,再到产品;
二、需求分析
糖水铺数据管理系统根据需求我们分为用户管理、产品管理、销售管理、职工管理和备份与恢复五大模块,每个模块再进行功能上的细分,例如产品管理中有产品展示、产品添加、产品修改、产品删除四个功能;
具体的模块和功能的展示如下图所示:
1、用户管理模块分为创建用户和删除用户,创建用户是为了创建一个可供使用者使用的账号,以方便客户查询,删除用户则是为了删除不需要的用户;
2、产品管理模块是为了给用户对产品进行管理的模块,分为产品展示、产品添加、产品修改、产品删除。
产品展示是为了给用户展示产品用的;
产品添加是为了用户可以执行添加新的产品;
产品修改是给用户修改价格的;
产品删除是提供用户进行老旧的产品删除的。
3、销售模块分为销售记录和产品销售两个功能,销售记录是提供用户查询最近的销售记录的;
产品销售是提供用户进行产品交易的。
4、职工管理模块分为查看职工、添加职工、删除职工三个功能;
查看职工是提供用户查询所有在职的职工的;
添加职工和删除职工是提供用户进行人事调动。
5、备份恢复模块的功能划分为建立备份、完全备份和恢复备份的。
建立备份是提供用户建立备份设备的;
完全备份是提供用户完整地备份数据库的;
恢复备份是提供用户在数据库被破坏时恢复数据库的;
三、概要设计
E-R图
四、数据库设计
4.1.1涉及的表
系列表
属性
类型
大小
能否为空
约束
系列号
tinyint
否
主键
系列名
varchar
20
产品表
产品编号
char
8
产品名
外键
价格
5
职工表
职工编号
姓名
性别
2
商店编号
聘期
月薪
money
销售表
Char
销售量
库存表
产品数量
bigint
用户表
用户名
密码
服务器权限
数据库权限
商店表
商店名
地址
50
4.1.2建表的SQL语句
createtable商店表
(商店编号char(8)notnullprimarykey,
商店名varchar(20)notnullunique,
地址varchar(50)notnull)
createtable系列表
(系列号tinyintnotnullidentityprimarykey,
系列名varchar(20)notnull)
createtable产品表
(产品编号char(8)notnullprimarykey,
产品名varchar(20)notnullunique,
系列号tinyintnotnullforeignkeyreferences系列表(系列号)ondeletecascadeonupdatecascade,
价格char(5)notnull)
createtable职工表
(职工编号char(8)notnullprimarykey,
姓名varchar(20)notnull,
性别char
(2)notnulldefault'
女'
check(性别='
男'
or性别='
),
商店编号char(8)notnullforeignkeyreferences商店表(商店编号)ondeletecascadeon
updatecascade,
聘期tinyintnotnull,
月薪moneynotnullcheck(月薪between2800and3500))
createtable销售表
(职工编号char(8)notnull,
产品编号char(8)notnull,
销售量tinyintnotnullprimarykey(职工编号,产品编号))
createtable库存表
(商店编号char(8)notnull,
商品编号char(8)notnull,
产品数量tinyintnotnullprimarykey(商店编号,商品编号))createtable
createtable用户表
(用户名varchar(20)notnullprimarykey,
密码varchar(20)notnull,
服务器权限varchar(20)notnull,
数据库权限varchar(20)notnull)
4.1.3数据库中表截图
1、系列表
系列号列设置主键约束;
2、产品表
产品编号列设置主键约束;
系列号列设置外键约束,同系列表的主键系列号列相关联;
3、职工表
职工编号列设置主键约束;
商店编号列设置外键有素;
性别列设置check约束,取值范围为“男”或“女”,设置默认值约束,默认值设为“男”;
4、销售表
职工编号和产品编号列设置主键约束;
5、库存表
商店编号和产品编号列设置主键约束。
6、商店表
商店编号列设置主键约束。
6、用户表
用户名列设置主键约束。
4.3存储过程
1、新建用户存储过程
为了方便新建用户并给用户分配权限,创建一个存储过程“jy_addyh”:
createprocjy_addyh
@namevarchar(20),@pwdvarchar(20),@srvrolevarchar(20),@rolevarchar(20)
as
execsp_addlogin@name,@pwd
if@srvrole<
>
'
execsp_addsrvrolemember@name,@srvrole
if@role<
begin
execsp_grantdbaccess@name
execsp_addrolemember@role,@name
end
insert用户表
values(@name,@pwd,@srvrole,@role)
2、删除用户存储过程
为了方便删除不用的用户,创建一个存储过程“jy_deleteyh”:
createprocjy_deleteyh
@namevarchar(10)
delete用户表
where用户名=@name
3、添加产品的存储过程
为了添加产品,创建一个存储过程“jy_addcp”:
createprocjy_addcp
@achar(8),@bvarchar(20),@ctinyint,@dchar(5)
insert产品表
values(@a,@b,@c,@d)
4、产品销售存储过程
为了方便登记销售情况,创建一个存储过程“xscp”:
createprocxscp
@zgbhchar(8),@cpbhchar(8),@cpsltinyint
As
insert销售表
values(@zgbh,@cpbh,@cpsl)
5、修改价格存储过程
为了方便修改产品价格,创建一个存储过程“jy_updatejg”:
createprocjy_updatejg
@xhchar(8),@jgchar(5)
update产品表
set价格=@jg
where产品编号=@xh
4.4触发器
当售出一件产品时,销售表会自动记录,并同时需要修改相对应的库存,所以需要建立一个触发器
createtrigger销售触发库存
on销售表
afterinsert
declare@产品编号char(8),@职工编号char(8)
select@产品编号=产品编号,@职工编号=职工编号
frominserted
update库存表
set产品数量=产品数量
where产品编号=@产品编号and商店编号=(select商店编号
from职工表
where职工编号=@职工编号)
4.5数据备份与恢复
建立数据设备
createprocjlbf
execsp_addumpdevice'
disk'
'
aa'
f:
\aa.bak'
完全备份
createprocwqbf
as
backupdatabaseSugar
toaa
withformat
恢复备份
createprochfbf
dropdatabaseSugar
restoredatabaseSugar
fromaa
五、应用系统设计(前台)
5.1前台登陆界面
登陆界面,只有登陆成功才能使用各项功能,登陆界面和相关代码如下图:
代码如下:
ImportsSystem.Data
ImportsSystem.Data.SqlClient
PublicClassForm1
PrivateSubButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton1.Click
IfTextBox1.Text="
"
OrTextBox2.Text="
Then
MsgBox("
请输入用户名和密码!
vbExclamation,"
请输入!
)
Else
DimcnAsNewSqlConnection
cn.ConnectionString="
server=PC201401161956\SQLEXPRESS;
uid=sa;
pwd=123;
database=Sugar"
cn.Open()
Ifcn.State=ConnectionState.OpenThen
DimaaAsString
aa="
select*from用户表where用户名='
&
TextBox1.Text&
"
and密码='
TextBox2.Text&
DimcmdAsNewSqlCommand
cmd.CommandText=aa
cmd.Connection=cn
DimabcAsSqlDataReader
abc=cmd.ExecuteReader()
Ifabc.HasRows=TrueThen
Panel1.Visible=False
MenuStrip1.Visible=True
登录成功!
欢迎使用系统!
登录成功!
登录失败!
拒绝访问系统!
登录失败!
EndIf
EndSub
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
MenuStrip1.Visible=False
PrivateSubButton2_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesButton2.Click
Me.Close()
PrivateSub添加用户ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles添加用户ToolStripMenuItem.Click
yhadd.Show()
PrivateSub删除用户ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles删除用户ToolStripMenuItem.Click
yhdelete.Show()
PrivateSub产品展示ToolStripMenuItem1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles产品展示ToolStripMenuItem1.Click
cpzs.Show()
PrivateSub产品添加ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles产品添加ToolStripMenuItem.Click
cpadd.Show()
PrivateSub产品修改ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles产品修改ToolStripMenuItem.Click
cpxg.Show()
PrivateSub产品删除ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles产品删除ToolStripMenuItem.Click
cpdelete.Show()
PrivateSub销售记录ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles销售记录ToolStripMenuItem.Click
xsjl.Show()
PrivateSub产品销售ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles产品销售ToolStripMenuItem.Click
xscp.Show()
PrivateSub查看员工ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles查看员工ToolStripMenuItem.Click
ygck.Show()
PrivateSub添加员工ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles添加员工ToolStripMenuItem.Click
ygadd.Show()
PrivateSub删除员工ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles删除员工ToolStripMenuItem.Click
ygdelete.Show()
PrivateSub建立备份ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles建立备份ToolStripMenuItem.Click
execjlbf"
cmd.ExecuteNonQuery()
建立成功!
cn.Close()
PrivateSub完全备份ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles完全备份ToolStripMenuItem.Click
execwqbf"
备份成功!
PrivateSub恢复备份ToolStripMenuItem_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)Handles恢复备份ToolStripMenuItem.Click
database=master"
exechfbf"
恢复成功!
EndSub
EndClass
5.2、用户管理菜单下的功能窗体
用户管理分为两个功能:
创建用户和删除用户,在创建用户窗体,输入新用户名和密码,选择权限,点击创建即可在后台创建该用户并将其记录在用户表中。
在删除用户窗体,只要输入要删除的用户名,点击删除即可在后台数据库中删除该用户,并在用