前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据库课程实践—仓库管理系统(附代码下载)

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

作者头像
全栈程序员站长
发布2022-08-26 15:47:29
1.1K0
发布2022-08-26 15:47:29
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

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

数据库:SQLServer 2008R2 开发工具:VS2010 语言:C# , SQL 界面直接拖控件就好了。 请注意,SQL 是针对 SQLServer 写的,MySQL 不适用,如果需要请自行修改。

课程设计的目的是熟悉和学习使用数据库的各种功能,比如ER图,数据库字段类型,主键,表间关系,触发器,存储过程,函数等等,并利用这些知识做一个简单的系统(Demo),理解数据库在应用系统中的作用。

下载指引:

[CSDN 代码下载,CSDN 太恶心了,下的越多所要积分越高,] 由于 CSDN 下载的越来越多,所需积分也越来越高,为了方便大家,所以将代码上传到 GitHub 仓库中去了,以下是代码仓库链接,代码下载点击 Code -> Download Zip 就可以了,方便的话点击一下右上角的 Star, 感谢。(注:没用过github 的同学一定要学会使用噢) https://github.com/LiuKay/WareHouseManagSys

小白下载指引(见下图):

代码下载指引
代码下载指引

完成功能:

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

E-R图

1.总体基本E-R图设计

这里写图片描述
这里写图片描述

2.入库E-R图

这里写图片描述
这里写图片描述

3.出库E-R图

这里写图片描述
这里写图片描述

4.借还记录

这里写图片描述
这里写图片描述
表设计
这里写图片描述
这里写图片描述

效果展示:

代码语言:javascript
复制
1.登录界面
这里写图片描述
这里写图片描述
代码语言:javascript
复制
2.货物查询
这里写图片描述
这里写图片描述
代码语言:javascript
复制
3.库存查询
这里写图片描述
这里写图片描述
代码语言:javascript
复制
4.出入库查询
这里写图片描述
这里写图片描述
代码语言:javascript
复制
5.借还查询
这里写图片描述
这里写图片描述
代码语言:javascript
复制
6.入库
这里写图片描述
这里写图片描述
代码语言:javascript
复制
7.出库
这里写图片描述
这里写图片描述
代码语言:javascript
复制
8.借出
这里写图片描述
这里写图片描述
代码语言:javascript
复制
9.归还
这里写图片描述
这里写图片描述
代码语言:javascript
复制
10.仓库管理-货物管理
这里写图片描述
这里写图片描述
代码语言:javascript
复制
11.仓库管理-管理员信息管理
这里写图片描述
这里写图片描述
代码语言:javascript
复制
12.仓库管理-仓库设置
这里写图片描述
这里写图片描述
代码语言:javascript
复制
13.数据库表
这里写图片描述
这里写图片描述
代码语言:javascript
复制
14.存储过程
这里写图片描述
这里写图片描述
总结

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

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/144365.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 下载指引:
    • 完成功能:
      • E-R图
        • 表设计
      • 效果展示:
        • 总结
    相关产品与服务
    数据库
    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档