数据库课程实践---仓库管理系统(附代码下载)

数据库课程实践-仓库管理系统桌面应用程序

数据库:SQLServer 2008r2
IDE:VS2010
[CSDN 代码下载,CSDN 太恶心了,下的越多所要积分越高,最后还把我的资源链接弄没了]
由于 CSDN 下载的越来越多,所需积分也越来越高,为了方便大家,所以将代码上传到 GitHub 仓库中去了,以下是代码仓库链接:
https://github.com/LiuKay/WareHouseManagSys
感谢 Star

完成功能:

(1)产品入库管理,可以填写入库单,确认产品入库;
(2)产品出库管理,可以填写出库单,确认出库;
(3)借出管理,凭借条借出,然后能够还库;
(4)仓库库存设置,设置库存的初始值,更改库存的上下限值;
(5)可以进行盘库,按货物分类,仓库分类和按货号和仓库查找;
(6)可以查询产品入库情况、出库情况、当前库存情况,可以按仓库、出库单、入库单,产品、时间进行查询;
(7)货物管理,查询、添加、删除货物信息;
(8)仓库管理员信息管理,禁止删除初始管理员;

E-R图

1.总体基本E-R图设计
数据库课程实践---仓库管理系统(附代码下载)_第1张图片
2.入库E-R图
数据库课程实践---仓库管理系统(附代码下载)_第2张图片
3.出库E-R图
数据库课程实践---仓库管理系统(附代码下载)_第3张图片
4.借还记录
数据库课程实践---仓库管理系统(附代码下载)_第4张图片

表设计

数据库课程实践---仓库管理系统(附代码下载)_第5张图片

效果展示:

1.登录界面

数据库课程实践---仓库管理系统(附代码下载)_第6张图片

2.货物查询

数据库课程实践---仓库管理系统(附代码下载)_第7张图片

3.库存查询

数据库课程实践---仓库管理系统(附代码下载)_第8张图片

4.出入库查询

数据库课程实践---仓库管理系统(附代码下载)_第9张图片

5.借还查询

数据库课程实践---仓库管理系统(附代码下载)_第10张图片

6.入库

数据库课程实践---仓库管理系统(附代码下载)_第11张图片

7.出库

数据库课程实践---仓库管理系统(附代码下载)_第12张图片

8.借出

数据库课程实践---仓库管理系统(附代码下载)_第13张图片

9.归还

数据库课程实践---仓库管理系统(附代码下载)_第14张图片

10.仓库管理-货物管理

数据库课程实践---仓库管理系统(附代码下载)_第15张图片

11.仓库管理-管理员信息管理

数据库课程实践---仓库管理系统(附代码下载)_第16张图片

12.仓库管理-仓库设置

数据库课程实践---仓库管理系统(附代码下载)_第17张图片

13.数据库表

数据库课程实践---仓库管理系统(附代码下载)_第18张图片

14.存储过程

数据库课程实践---仓库管理系统(附代码下载)_第19张图片

总结

本次数据库课程设计我做的是仓库信息管理系统,在数据库设计的初期,先分析了仓库管理系统基本功能和服务对象,起初设计的时候并没有考虑清楚对象,添加了很多不必要的使用者,比如供应商和客户,仔细分析之后发现,该系统应该只是服务于仓库管理员而已,于是又要删掉客户这一实体,只是作为出库的一个属性存在。在做货物入库和出库触发器的时候,并没有想到用写成的C#应用程序如何去与触发器的回滚操作做通信,这样会导致在触发器中停止的操作并不会反映到应用程序的界面上来,所以我认识到,应用程序与数据库的通信应该尽量写成存储过程来调用,而触发器的功能尽量的应该是来维护表的完整性,比如做表的同步插入跟新删除等。通过存储过程返回的参数,可以简单的返回到应用程序中,通过判断情况可以清楚的反映sql语句的执行情况,这样就增强了应用程序和数据库见的交流,使用户可以容易的知道执行到哪了或者执行了什么操作。在做数据库设计的过程中,我发现同一个系统可以有不同表述和理解,比如在实际的仓库系统中一个订单号对应一种货物还是多种货物的问题,主键设成订单号当然只能对应一种货物,若主键由单号+仓库+货物那就可以对应多种情况,根据不同情况和需求可以做不同的实现。在设计表的时候有很多细节要注意,比如单号是自己生成还是由管理员来填写(比如表空的时候是Null,若直接加1则还是Null,所以要先判断是否为空),比如datetime类型与字符之间的转换(需要什么样的时间格式,客户需要什么样的信息),比如出入的情况分析和借还情况的实现。我想实现在查询借还记录的时候归还的显示为归还时间(datetime格式)未归还的显示为“未归还”(字符),这个功能一直很难实现,因为经常是转换问题。
用ADO.NET实现应用程序和数据库的链接和通信,然后将调用存储过程方法写在对应的控件按钮里面进行操作。遇到的问题是,比如一个TextBox的默认值是””,则在调存储过程中要判断各种情况,不然会经常报错。如何把界面做的适合真正的仓库管理人员使用,要研究他们真正需要的是什么。在做课设中,我认识到了,不能一开始就想的很复杂,要先实现一些基本的需求,在此基础上再全面的分析问题,再添加需要的情况分析和功能实现,这才是一步一步完善设计的步骤。

你可能感兴趣的:(项目实践,数据库,管理,桌面应用)