基于C#-winform的书店采购管理系统的设计

本博客,主要记录我做毕业设计的各个步骤,分享下自己的心得,同时可以互相学习。

1开发工具简介

  1. 开发平台:windows 10
  2. 开发工具:visual studio 2013
  3. 数据库:SQL Server 2012
  4. 开发框架:.NET Framework4.0
  5. 建模工具:Visio 2013
  6. Windows安装开发解决方案:InstallShield 2010

2数据库设计

在书店采购管理系统中,创建6个表格如下:

  1. 图书信息(图书编号,图书名称,语种,作者,单价,总量)
  2. 销售(销售号,图书编号,图书名称,顾客编号,销售日期,单价,数量,销售员号)
  3. 采购(采购号,图书编号,图书名称,数量,管理员号,采购员号)
  4. 会员(顾客编号,顾客姓名,身份证号,电话号,级别)
  5. 用户信息(工号,姓名,账号,密码,有效权)
  6. 图书管理员(账号,密码,权限)

表-1 图书信息表(bookinfo)

字段名称数据类型字段注释非空
bookidVarchar(10)FK图书编号Y
booknameVarchar(50)图书名称N
languagesVarchar(10)语种N
authorVarchar(10)作者N
priceVarchar(10)价格N
totalint总量N

表-2 销售表(pay)

字段名称数据类型字段注释非空
paycodeVarchar(10)FK销售单Y
bookidVarchar(10)PK图书号Y
booknameVarchar(50)图书名称Y
vip_idVarchar(10)PK顾客号Y
pay_datedatetime购买日期Y
priceVarchar(10)单价Y
numint数量Y
idVarchar(10)PK管理员号Y

表-3 采购表(purchase)

字段名称数据类型字段注释非空
purchase_idVarchar(10) FK采购号Y
bookidVarchar(10)图书号Y
booknameVarchar(50)图书名称Y
numberint数量Y
idVarchar(10)管理员号Y
id_endVarchar(10)采购员号N

表-4 顾客表(vip)

字段名称数据类型字段注释非空
Vip_idVarchar(10)FK顾客号Y
Vip_nameVarchar(10)顾客姓名N
Id_cardVarchar(10)身份证N
telephoneVarchar(10)电话号N
Vip_roleint级别N

表-5 用户表(user)

字段名称数据类型字段注释非空
idVarchar(10)FK工号Y
nameVarchar(10)姓名Y
user_idVarchar(10)PK账号Y
passwordVarchar(10)密码Y
statusbit是否有效Y

表-6 登录表(userinfo)

字段名称数据类型字段注释非空
user_idVarchar(10)FK账号Y
passwordVarchar(10)密码N
roleint权限(默认为1)Y

数据库表创建语句:

CREATE TABLE [dbo].[bookinfo] (
	[bookid] [nchar] (10) NOT NULL ,
	[bookname] [nvarchar] (50) NULL ,
	[languages] [nchar] (10) NULL ,
	[author] [nchar] (10) NULL ,
	[price] [nchar] (10) NULL ,
	[comment] [int] NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[pay] (
	[paycode] [nchar] (10) NOT NULL ,
	[bookid] [nchar] (10) NOT NULL ,
	[bookname] [nvarchar] (50) NOT NULL ,
	[vip_id] [nchar] (10) NOT NULL ,
	[pay_date] [datetime] NOT NULL ,
	[price] [nchar] (10) NOT NULL ,
	[num] [int] NOT NULL ,
	[id] [nchar] (10) NOT NULL 
) ON [PRIMARY]
GO

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO
--销售表触发器主要实现按销售数量更新图书数量的功能
CREATE trigger Tri3 on [dbo].[pay]
for insert
as
begin
declare @c char(10),@d int
select @c=bookid from inserted
select @d=num from inserted
update bookinfo
set comment=comment-@d
where bookid=@c
end

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

CREATE trigger [dbo].[Tri4] on [dbo].[pay]
for update
as
begin
declare @c1 char(10),@c2 char(10),@d1 int,@d2 int
select @c1=bookid from deleted
select @c2=bookid from inserted
select @d1=num from deleted
select @d2=num from inserted
if(@c1=@c2)
update bookinfo
set comment=comment-(@d2-@d1)
where bookid=@c1
else
update bookinfo
set comment=comment+@d1
where bookid=@c1
update bookinfo
set comment=comment-@d2
where bookid=@c2
end



GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO


CREATE TABLE [dbo].[purchase] (
	[purchase_id] [nchar] (10) NOT NULL ,
	[bookid] [nchar] (10) NOT NULL ,
	[bookname] [nvarchar] (50) NOT NULL ,
	[number] [int] NOT NULL ,
	[id] [nchar] (10) NOT NULL ,
	[id_end] [nchar] (10) NULL 
) ON [PRIMARY]
GO

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO
--采购表触发器主要实现按采购数量更新图书数量的功能
CREATE trigger Tri1 on [dbo].[purchase]
for insert
as
begin
declare @a char(10),@b int
select @a=bookid from inserted
select @b=number from inserted
update bookinfo
set comment=comment+@b
where bookid=@a
end


GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS ON 
GO

CREATE trigger [dbo].[Tri2] on [dbo].[purchase]
for update
as
begin
declare @a1 char(10),@a2 char(10),@b1 int,@b2 int
select @a1=bookid from deleted
select @a2=bookid from inserted
select @b1=number from deleted
select @b2=number from inserted
if(@a1=@a2)
update bookinfo
set comment=comment+(@b2-@b1)
where bookid=@a1
else
update bookinfo
set comment=comment-@b1
where bookid=@a1
update bookinfo
set comment=comment+@b2
where bookid=@a2
end

GO
SET QUOTED_IDENTIFIER OFF 
GO
SET ANSI_NULLS ON 
GO

CREATE TABLE [dbo].[user] (
	[id] [nchar] (10) NOT NULL ,
	[name] [nchar] (10) NULL ,
	[user_id] [nchar] (10) NOT NULL ,
	[password] [nchar] (10) NULL ,
	[status] [bit] NOT NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[userinfo] (
	[user_id] [nchar] (10) NOT NULL ,
	[password] [nchar] (10) NULL ,
	[role] [int] NOT NULL 
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[vip] (
	[vip_id] [nchar] (10) NOT NULL ,
	[vip_name] [varchar] (50) NULL ,
	[id_card] [varchar] (50) NULL ,
	[telephone] [varchar] (50) NULL ,
	[vip_role] [int] NULL 
) ON [PRIMARY]
GO

3系统展示

系统展示视频:基于C#的windows窗体应用(已打包)

  1. 登录、注册窗口界面

登录、注册窗口界面

  1. 图书查询窗口界面

图书查询窗口界面

  1. 图书管理窗口界面

图书管理窗口界面

  1. 销售管理窗口界面

销售管理窗口界面

  1. 采购管理窗口界面

采购管理窗口界面

  1. 维护管理窗口界面

维护管理窗口界面

  1. 顾客管理窗口界面

顾客管理窗口界面

  1. 修改密码窗口界面

修改密码窗口界面

  1. 权限管理窗体界面

权限管理窗体界面

4功能模块

本系统一共分为四个模块:图书管理模块、采购管理模块、销售管理模块、维护管理模块。如图所示。
采购管理系统功能结构图

5系统实现

系统实现:(纯代码)基于C#-winform的书店采购管理系统的设计
解决方案资源管理器
在设计过程,设置数据源是决定连接数据库表是报错的关键点。在VS2013中选择项目–>添加新数据源,进入数据源配置向导界面选择数据库–>数据集–>新建连接,进入添加连接界面选择更改,进入更改数据源界面选择Microsoft SQL Server 数据库文件 (SqlClient)并按确定,返回到添加连接界面选择浏览,找到分离的数据库文件(.mdf格式)。测试成功后确定,即可创建保存到应用程序中的连接字符串。
添加数据源

6Windows安装开发解决方案

参考使用InstallShield2015 Limited Edition的免费安装跟进行VS应用程序打包

  • 8
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值