数据库课程设计-仓库管理系统

合集下载

数据库课程设计 仓库管理系统数据库的设计与实现

数据库课程设计  仓库管理系统数据库的设计与实现

仓库管理系统数据库设计与实现一.实验时间、地点时间:第十三周(11月21日——25日)地点:软件楼305二.实验目的通过本次课程设计让学生能够综合运用所学的关系数据库原理知识解决并能设计一个实际问题,进一步掌握数据库原理的相关理论和数据库的设计实现过程,进一步提高学生的分析问题和解决问题的能力以及学生的动手能力。

三、课程设计要求:1.对各个系统进行系统功能需求分析2. 数据库设计分析阶段,进行详细的数据库需求分析,进行概念数据库的设计,画出数据库的E-R图(局部和整体E-R图)3. 设计出详细的逻辑数据库结构,将各个实体和联系转化为相应的二维表即关系模式,指定各个关系的主关键字和外部关键字,并对各个关系的约束加以限定4. 通过企业管理器或是查询分析器实现各个二维关系(建议最好用SQL代码实现),要求建立相关的索引5. 根据系统功能需求设计相应的查询视图6. 要求根据系统功能需求建立存储过程7. 根据功能需求建立相应的触发器以保证数据的一致性8. 通过建立用户和权限分配实现数据库一定的安全性,考虑数据库的备份与恢复(此内容选作)四.仓库管理系统实验要求描述:设计一个仓库管理系统,实现下列功能:1.零件信息登记(包括种类,名称和库存数量等信息);2.零件进库登记(包括种类,名称和库存数量等信息);3.零件出库登记(包括种类,名称和库存数量等信息);五.实现思路1.关系模式零件信息表(零件编号,零件名,单价,数量,零件类型号,生产厂家号)生产商情况表(生产厂家号,生产厂家名,生产厂家地址,生产厂家电话)入库登记表(零件编号,零件名,入库数量,零件类型,生产厂家号,入库时间)出库登记表(零件编号,零件名,出库数量,出库时间)零件类型信息表(零件类型号,类型)2.设计思路仓库管理系统设计了五个二维表,他们的设计表如下(1)零件信息设计表(2)生产商情况设计表(3)入库登记设计表(4)出库登记设计表(5)零件类型信息设计表3.仓库管理系统全局E—R图零件信息重量单价数量零件编号 零件类型号颜色 出库入库入库登记零件编号零件名入库数量 入库时间出库时间颜色生产商号零件类型生产 商号零件名 零件编号零件名出库 数量出库 性质提货人员出 库 登 记六.实现过程create database 仓库管理系统 on (name=仓库_dat,Filename='e:\microsoft SQL Server\MSSQL\Date\仓库.mdf', Size=10, Maxsize=150 )Log on (name=仓库_log,Filename='e:\microsoft SQL Server\MSSQL\Date\仓库.ldf', Size=10, Maxsize=80 )create table 零件信息表(零件编号 char(10) primary key, 零件名 char(10) not null,单价 money constraint 单价_Chk check(单价 between 80 and 660), 数量 int,零件类型号 char(10),生产商情况 生产商生产商名 生产商号零件类型生产厂家电用途 类型零件类型零件信息卖 出 类型生产厂家号 char(6));select * from 零件信息设计表/***创建并查询零件信息表索引***/create unique index 零件信息_index on 零件信息表(零件编号) exec Sp_helpindex 零件信息表create table 生产厂家信息表(生产厂家号 char(6) primary key ,生产厂家名 varchar(16) not null,生产厂家地址 varchar(40),生产厂家电话 char(12));select * from 生产厂家信息表/***创建并查询生产厂家信息索引***/create index 生产厂家信息_index on 生产厂家信息表(生产厂家号)exec Sp_helpindex 零件信息表create table 零件类型信息表(零件类型号 char(10) primary key,类型 char(10);select * from 零件信息设计类型表/***创建并查询零件类型信息索引***/create index 零件类型信息表_index on 零件类型信息表(零件类型号) exec Sp_helpindex 零件类型信息表create table 入库登记表(零件编号 char(10),零件名 char(10) not null,入库数量 int,零件类型 char(8),生产厂家号 char(6),入库时间 datetime);select * from 入库登记设计表/***创建并查询入库登记表索引***/create index 入库登记表_index on 入库登记表(零件编号)exec Sp_helpindex 入库登记表create table 出库登记表(零件编号 char(10),零件名 char(10),出库数量 int,出库时间 datetime);select * from 出库登记设计表/***创建出库登记表索引***/create index 入库登记表_index1 on 出库登记表(零件编号)create index 入库登记表_index2 on 出库登记表(出库数量)create index 入库登记表_index3 on 出库登记表(出库时间)/***查询零件名为“硬盘”的信息***/select 零件编号,零件名,单价,数量,生产厂家信息表.生产厂家名,生产厂家地址,生产厂家电话,零件信息类型设计表.类型from 零件信息表,生产厂家信息表,零件信息类型设计表where(零件信息设计表.零件类型号=零件信息类型设计表.零件类型号and 生产厂家信息设计表.生产厂家号=零件信息设计表.生产厂家号and 零件名='硬盘')查询结果为:/***创建零件信息表视图***/create view v_lj as select * from 零件信息表/***创建生产厂家信息表视图***/create view v_sc as select * from 生产厂家信息表create view select_零件信息表 asselect 零件信息设计表.零件编号,零件信息设计表.零件名,零件信息设计表.零件类型号 from 零件信息设计表inner join 零件信息类型设计表 on 零件信息设计表.零件类型号 = 零件类型信息设计表.零件类型号/***创建数量在200—900之间的规则,并绑定规则***/create rule 数量_ruleas @数量>=200 and @数量<=900exec sp_helptext'数量_rule'exec sp_bindrule'数量_rule','零件信息表.数量'exec sp_unbindrule'零件信息表.数量'drop rule 数量_rule/***创建向表中添加信息的存储过程***/create procedure insert_零件信息( @零件编号 char(10),@零件名 char(10),@单价 money,@数量 int,@零件类型号 char(10),@生产厂家号 char(6))asinsert into 零件信息表 values(@零件编号,@零件名,@单价,@数量,@零件类型号,@生产厂家号)exec insert_零件信息 @零件编号='001',@零件名='鼠标',@单价=80,@数量='1000',@零件类型号='L1',@生产厂家号='01'select * from 零件信息表/***删除存储过程***/drop procedure insert_零件信息/***创建触发器并向利用触发器向表内添加信息***/create trigger ChangDisplayon 零件信息表for insertasselect * from 零件信息表insert into 零件信息表 values('002','数据线',80,'800','L2','06')七.实验总结本系统是一个面向小型企业,具有一定实用性的数据库仓库管理系统。

仓库管理系统数据库设计课程设计

仓库管理系统数据库设计课程设计

仓库管理系统的应用和发展
仓库管理系统概述:介绍仓库管理系统的发展历程、应用领域和重要性。 仓库管理系统应用现状:分析当前仓库管理系统的应用现状,包括企业规模、行业分布、地域分布等。 仓库管理系统发展趋势:探讨仓库管理系统的发展趋势,包括技术、功能、应用等方面的变化。 课程设计背景:介绍本次课程设计的背景,包括课程目标、设计要求、设计内容等。
安全性原则: 保护数据不 被未经授权 的访问和篡 改
性能优化原 则:提高数 据查询和处 理的速度和 效率
数据库设计规范
数据库设计原则:满足用户需求,保证数据一致性、完整性、安全性
数据库设计规范:采用统一的数据命名规范、数据类型规范、数据存储规范等
数据库设计流程:需求分析、概念设计、逻辑设计、物理设计、实施与维护
出库记录与查询:系统记录每笔出库操作,并可查询历史出库记录,方便管理和追溯
库存管理
库存查询:实时查 询仓库库存数量和 状态
库存预警:设定安 全库存阈值,低于 预警线及时提醒
库存盘点:定期对 仓库库存进行盘点 ,确保数据准确性
库存调拨:在不同 仓库之间进行库存 调拨,满足客户需 求
报表生成与查询
报表内容:详细记录仓库的 进货、销售、库存等信息
添加标题
数据库设计可以保证数据安全性:通过数据库设计,可以设置合适的数据 访问权限和数据加密方式,保证数据的安全性。
仓库管理系统功能需求 分析
货物入库流程:描述货物入库的具 体流程,包括货物的接收、检验、 入库等环节。
货物入库管理
入库数据核对:说明如何核对入库 数据,确保数据的准确性和完整性。
添加标题
触发器条件:WHEN INSERTING, UPDATING, DELETING

仓库管理系统数据库设计

仓库管理系统数据库设计

仓库管理系统数据库设计班级:学号、姓名:学号、姓名:学号、姓名:1.需求分析(1)需求描述:仓库管理主要用来管理客户、供应商、仓库及货物,其中的商品进货、销售和库存管理复杂繁琐,需要耗费大量的时间和人力对这些数据进行统计和分析,这是一项相当大的工程。

尤其在当商品种类繁多的情况下,传统的人工管理方式存在基本资料保存与维护困难,管理者需要加强成本管理和收入管理,通过提高服务水平来提升企业形象。

他们对仓库管理程序进行了详细的分析和策划,提出了利用计算机管理信息系统对仓库进行管理,从而进行仓库管理系统的开发,以适应今天高速运转的全球经济化的竞争。

高效方便的仓库管理系统主要提供一个仓储业务及其作业管理的信息存储和检索系统。

通过仓库管理、供应商管理、入库管理、出库管理、客户管理及货物管理等功能模块来实现仓库的综合管理.它极大的满足了商品销售行业的电子化管理,其主要功能是实现物品发放、物品出库、货物管理,具体为:插入功能、查询功能。

这更能便于公司管理层了解实时的信息。

同时它以数据库内存最小化,运行速度最大化为目标,使得管理者可以更高效得进行管理.基于上述阐述,现对此仓库管理系统初步功能归纳如下:①系统性质:②系统使用着:操作员、各部门经理(如:货物部门经理、客户部门经理等)③系统运行环境④系统主要功能表1 仓库管理主要功能表(2)分析设计顶层数据流图由于在搜寻指定货物时会因货物量大而加重任务量,在对一些货物及人员就行更新时也会因为复杂而手忙脚乱。

这样在交易活动中不断地产生新数据,使得信息量逐渐加大。

但使用本系统可以很方便的对所需信息进行查询,也可适时的利用插入功能对相关数据进行更新,这样及时、便捷、高效的得到查询统计结果。

因此,设计顶层数据流图如图1所示:图1 仓库管理0层数据流图(3)逐步细化数据流图根据表1列出的的仓库管理的主要功能,将仓库管理加工细化分解为仓库管理、供应商管理、入库管理、出库管理、客户管理和货物管理等子加工。

课程设计库存管理系统

课程设计库存管理系统

课程设计库存管理系统一、教学目标本课程的学习目标包括知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握库存管理系统的基本概念、原理和操作方法;技能目标要求学生能够运用所学知识进行库存管理实践,提高工作效率;情感态度价值观目标要求学生培养对库存管理工作的热爱和责任感,形成良好的职业道德。

通过分析课程性质、学生特点和教学要求,我们将目标分解为具体的学习成果。

首先,学生需要理解库存管理的基本概念,如库存、库存控制、库存优化等。

其次,学生需要掌握库存管理的基本原理,如库存周期、库存周转率、库存预测等。

再次,学生需要学会使用库存管理软件,如ERP系统、WMS等。

最后,学生需要能够运用所学知识解决实际问题,提高工作效率。

二、教学内容根据课程目标,我们选择和了以下教学内容。

首先,介绍库存管理的基本概念和原理,包括库存的定义、库存控制的目的和原则等。

其次,讲解库存管理的基本方法和技术,如库存预测、库存周期和库存周转率等。

接着,介绍库存管理软件的使用,如ERP系统、WMS等。

最后,通过案例分析和实践操作,让学生学会运用所学知识解决实际问题。

三、教学方法为了激发学生的学习兴趣和主动性,我们采用了多样化的教学方法。

首先,通过讲授法,向学生传授库存管理的基本概念和原理。

其次,通过案例分析法,让学生学会运用所学知识解决实际问题。

再次,通过实验法,让学生亲自动手操作库存管理软件,提高实际操作能力。

最后,通过讨论法,鼓励学生积极参与课堂讨论,培养团队合作精神。

四、教学资源为了支持教学内容和教学方法的实施,我们选择了适当的教学资源。

教材方面,我们选择了《库存管理》一书,该书详细介绍了库存管理的基本概念、原理和方法。

参考书方面,我们推荐了《库存控制与管理》等书籍,以丰富学生的知识体系。

多媒体资料方面,我们准备了一些库存管理的视频教程,以帮助学生更好地理解所学内容。

实验设备方面,我们准备了ERP系统和WMS等库存管理软件,让学生能够进行实际操作。

C语言课程设计仓库管理系统

C语言课程设计仓库管理系统

C语言课程设计仓库管理系统一、教学目标本课程旨在通过学习仓库管理系统,让学生掌握C语言编程的基本概念和方法,培养学生具备一定的软件开发能力。

具体的教学目标如下:1.知识目标:(1)理解C语言的基本语法和数据结构;(2)掌握C语言的函数、指针、 arrays等核心概念;(3)熟悉常用的库函数和预处理指令;(4)了解软件开发的基本流程。

2.技能目标:(1)能够使用C语言编写简单的程序;(2)具备基本的代码调试和优化能力;(3)能够独立完成简单的软件项目。

3.情感态度价值观目标:(1)培养学生对计算机科学的兴趣和热情;(2)培养学生良好的编程习惯和团队协作精神;(3)使学生认识到编程对于解决实际问题的价值。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、函数、指针、数组等核心概念,以及软件开发的基本流程。

具体的教学大纲如下:1.C语言的基本语法和数据结构;2.函数、指针和数组的概念及应用;3.常用的库函数和预处理指令;4.软件开发的基本流程;5.综合实例:仓库管理系统的设计与实现。

三、教学方法为了提高教学效果,我们将采用多种教学方法相结合的方式进行教学。

具体包括:1.讲授法:用于讲解C语言的基本语法、数据结构、函数、指针、数组等核心概念;2.案例分析法:通过分析实际案例,使学生更好地理解仓库管理系统的设计与实现;3.实验法:让学生动手编写代码,巩固所学知识,提高编程能力;4.小组讨论法:分组进行讨论,培养学生的团队协作能力和问题解决能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材;2.参考书:提供丰富的C语言编程参考书籍;3.多媒体资料:制作精美的课件,辅助讲解;4.实验设备:提供足够的计算机设备,让学生进行编程实践。

通过本课程的学习,希望学生能够掌握C语言编程的基本概念和方法,为今后的计算机科学学习和软件开发打下坚实基础。

五、教学评估为了全面、客观地评估学生的学习成果,我们将采用多种评估方式相结合的方法。

uml仓库管理系统课程设计

uml仓库管理系统课程设计

uml仓库 管理系统课程设计一、课程目标知识目标:1. 学生能理解UML的基本概念,掌握UML图的使用方法。

2. 学生能掌握仓库管理系统的功能需求、业务流程和数据流程。

3. 学生能运用UML图描述仓库管理系统的静态结构和动态行为。

技能目标:1. 学生能运用UML工具绘制类图、用例图、序列图等,对仓库管理系统进行建模。

2. 学生能通过小组合作,分析和解决实际项目问题,提高团队协作能力。

3. 学生能运用所学知识,对仓库管理系统进行优化和改进。

情感态度价值观目标:1. 学生通过课程学习,培养对软件工程和系统分析的兴趣,提高学习积极性。

2. 学生能够认识到UML图在软件开发中的重要性,增强对软件工程规范的认识。

3. 学生在课程实践中,培养认真负责、严谨细致的工作态度,提高沟通协作能力。

课程性质:本课程为实践性较强的课程设计,旨在让学生运用所学知识,结合实际项目,进行UML建模和系统分析。

学生特点:学生处于高年级阶段,已具备一定的编程基础和软件工程知识,具备独立思考和解决问题的能力。

教学要求:教师需引导学生运用UML工具进行系统建模,注重培养学生的实际操作能力和团队协作精神,提高学生对实际项目的分析和解决能力。

通过课程目标的实现,为学生的未来职业发展奠定基础。

二、教学内容1. UML基本知识回顾:包括UML的基本概念、类图、用例图、序列图等。

教材章节:第一章 UML基本概念;第二章 类图与对象图;第三章 用例图与序列图。

2. 仓库管理系统需求分析:学习如何进行系统功能需求、业务流程和数据流程分析。

教材章节:第四章 系统分析与设计;第六章 数据流程图。

3. UML建模实践:a. 运用UML工具绘制类图、用例图、序列图等。

b. 根据仓库管理系统需求,进行系统建模。

教材章节:第二章 类图与对象图;第三章 用例图与序列图;第五章 UML工具使用。

4. 仓库管理系统优化与改进:结合实际情况,对系统进行优化和改进。

教材章节:第七章 系统优化与改进。

企业仓库管理系统数据库设计

企业仓库管理系统数据库设计

企业仓库管理系统数据库设计1.数据库目标-存储和管理企业仓库的所有物品信息,如名称、价格、数量等。

-记录仓库中物品的流动情况,包括入库、出库、移库等操作。

-跟踪物品的库存情况,包括当前库存数量、最大/最小库存量等。

-提供查询和报告功能,以便用户可以根据需求获取仓库的相关信息。

2.数据库结构-物品:存储物品的基本信息,如名称、价格、数量等。

-仓库:存储仓库的基本信息,如名称、地址等。

-入库单:记录物品的入库操作,包括物品、数量、时间等。

-出库单:记录物品的出库操作,包括物品、数量、时间等。

-移库单:记录物品的移库操作,包括原仓库、目标仓库、物品、数量、时间等。

3.数据库表设计根据上述数据库结构,我们可以设计以下几个表来存储相关信息:- 物品表(item):包含字段id、名称、价格、数量等。

- 仓库表(warehouse):包含字段id、名称、地址等。

- 入库单表(inbound_order):包含字段id、物品id、数量、时间等。

- 出库单表(outbound_order):包含字段id、物品id、数量、时间等。

- 移库单表(move_order):包含字段id、原仓库id、目标仓库id、物品id、数量、时间等。

4.数据库关系设计根据上述表的设计,我们可以建立以下关系:-物品表与仓库表之间是多对多关系,一个仓库可以存放多个物品,一个物品也可以存放在多个仓库中。

可以使用一个关联表来表示这种关系。

- 入库单表与物品表之间是多对一关系,一个入库单可以有多个物品,一个物品只能属于一个入库单。

可以使用物品id作为外键来表示这种关系。

- 出库单表与物品表之间是多对一关系,一个出库单可以有多个物品,一个物品只能属于一个出库单。

可以使用物品id作为外键来表示这种关系。

-移库单表与仓库表和物品表之间是多对多关系,一个移库单可以有多个物品和多个仓库,一个物品可以属于多个移库单,一个仓库也可以包含多个移库单。

可以使用一个关联表来表示这种关系。

仓库管理系统课程设计

仓库管理系统课程设计

仓库管理系统一、课程设计的内1、学习与实践数据库应用程序开发流程;2、学习使用某一种数据库服务,学会数据库应用程序编程,安装配置系统开发环境;3、设计和实现仓库管理系统;4、撰写课程设计报告。

二、课程设计的要求与数据系统应该实现以下功能:(1) 进、出库管理。

对进、出库信息进行记录。

(2) 查询功能。

仓库管理对查询要求高,通过主菜单记录当前操作用户的用户编号,保证了对进、出库信息录入负责人的确认。

(3) 部门资料管理与库存报表生成。

资料管理包括了人员信息管理,财政支出信息管理,以及各项业务单据的资料管理。

报表主要分类为:日报表,月报表,销售报表,入库报表等等。

(4) 由于计算机能存贮大量的数据,而且数据只要一次存入,便可多次重复使用,所以管理数据达到完整,统一,原始记录能保证及时,准确。

(5) 许多重复性的工作,都可由计算机去执行,从而使管理人员从事务性工作解脱出来,真正变为从事一些信息的分析,判断,决策等创造性的工作。

数据自己自行编造测试。

论文要求结构严谨、格式规范,内容正确、文字通顺。

三、课程设计应完成的工作该系统主要分为三大功能: 管理员功能、信息安全功能、一般用户功能、报表生成。

(1) 管理员功能:产品入库登记、确认入库信息、删除库内信息、借出信息登记、产品分类管理、添加人员、删除人员、查询库内信息。

(2) 信息安全功能:人员权限区分、事件记录、数据警告、数据备份、数据恢复;(3) 一般用户功能:查询库内信息、查询出库信息、查询入库信息、修改本用户密码;(4) 报表生成:库存信息报表生成。

五、应收集的资料及主要参考文献[1] MySQL 5.1参考手册/doc/refman/5.1/zh/introduction.html#features[2] /mydac/[3] 数据库系统概论(第四版)王珊萨师煊高等教育出版社 2006.5[5] MySQL开发者SQL权威指南(荷)Rick F.van der Lans 著许杰星李强等译机械工业出版社 2008.1[6] 学习MySQL(影印版) Seyed M.M."Saied" Tabagbogbi & Hugb E.Williams 著南京:东南大学出版社 2007.6[7] C++Builder程序员成长攻略蒙祖强龚涛等编著北京:中国水利水电出版社 2007.1目录一、相关技术介绍 (3)1.1 MySQL (3)1.2 Borland C++Builder集成开发环境 (4)1.3 MyDAC组件库 (5)二、需求分析 (6)2.1 功能需求及用户需求 (6)2.1.1 功能需求 (6)2.1.2 用户需求 (6)2.2 系统流图 (6)2.3 数据描述 (7)2.3.1 数据字典 (7)2.3.1.1 基本数据项及数据结构 (7)2.3.1.2 数据流条目 (8)2.3.1.3 数据存储条目 (8)2.3.1.4 加工条目 (8)2.3.2 数据流图 (9)2.4 安全性和完整性要求 (11)2.4.1 安全性要求 (11)2.4.2 完整性要求 (12)三、概念结构设计 (12)四、逻辑结构设计 (14)4.1 关系模型设计 (14)4.2 用户子模式设计 (19)4.3 系统结构图 (23)4.4 安全性和完整性设计 (23)4.4.1 安全性设计 (23)4.4.2 完整性设计 (23)五、数据库物理设计 (24)5.1 建立索引 (24)5.2 确定数据的存放位置 (25)5.3 确定系统配置 (25)5.4 模块设计 (26)六、数据库实施 (27)6.1 创建数据库及数据库对象SQL脚本 (27)6.2数据库备份和恢复方案 (40)6.2.1 静态备份 (40)6.2.2 动态备份 (41)6.2.3 恢复备份 (41)6.3 界面设计 (41)6.4 关键代码 (44)七、系统测试方案 (46)7.1 登录测试 (47)7.2 新建用户测试 (47)7.3 更改用户测试 (47)7.4 删除用户测试 (47)7.5 数据录入测试 (47)7.6 查询测试 (48)八、系统主要功能和使用说明 (48)九、系统安装说明 (49)十、心得体会 (51)参考文献: (51)相关技术介绍1.1 MySQLMySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

任务书1、课程设计题目仓库管理系统2、设计任务和内容一个小型通用的仓库管理系统是实现企业对库存商品出库、入库进行高效的管理。

通过应用系统应能结合销售情况对库存商品进行录入、删除、修改等操作。

按照一定的条件,查询、统计符合条件的商品信息;并且对查询、统计的结果有一定的输出。

本课题任务是开发一个小型的仓库管理系统,并撰写符合规范的课程设计说明书以体现设计过程和设计结果。

3、设计步骤和要求设计步骤:首先进行相关资料查阅和学习,了解基本的业务流程和系统数据功能要求。

然后结合软件工程的理论和教材中数据库设计的六个阶段(重点是前三个阶段)完成设计任务,即系统结构设计(需求分析、概念结构设计、逻辑结构设计、物理结构设计)和系统功能设计。

设计要求:1、撰写课程设计说明书。

其要求如下:(1)基本要求:①能反映完成了上述设计内容要求。

②要求撰写不少于5000个文字(20页)的文档。

③文档中至少要包括:数据流图、数据字典、E-R图、数据库表的详细说明、系统功能结构图、主要功能模块说明。

④课程设计说明书一律用碳素墨水书写,其中用户界面设计可以附界面的计算机截图或手工绘图。

(2)文档格式要求(遵循数据库原理及应用课程设计大纲上的要求)其中,正文部分:①分章、层次等,每一章从新一页开始。

②章节安排可如下安排.概述:包括项目背景、编写目的、软件定义、开发环境等内容。

.需求分析:问题陈述、需完成的功能。

以数据流图和数据字典表达。

.概念结构设计:将上述需求分析的成果抽象为ER模型图。

.逻辑结构设计:把ER模型图转换为关系表;描述每一个基本表关系。

并进行规范化;定义视图、定义索引、主关键字、定义权限。

.软件功能设计:画出系统功能结构图,描述每个功能所完成的任务。

.代码设计和界面设计:给出主要功能的代码并有适当的说明;界面设计要合理,给出主要界面。

2、一个可运行的仓库管理系统原型。

(可选)教师签名:摘要随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现管理企业势在必行。

而仓库管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。

对前者要求建立起数据一致性和完整性强、数据安全性好的库。

而对于后者则要求应用程序功能完备,易使用等特点。

本文通过分析浏览器/服务器结构的特点并结合企业仓储管理的实际情况,提出了基于B/S结构中小型企业仓库管理系统的基本设计思想,简要介绍了系统各功能模块及数据库的设计,着重讨论了用技术和SQL Server 2005开发企业仓库管理系统时的数据库访问技术和动态网页制作技术,并给出了部分实现代码。

通过该系统,使学生可以方便地在企业内部网上进行仓储管理。

该B/S 结构的系统在Windows XP系统和平台下开发完成,使用C#作为的开发语言,SQL Server 2005作为后台数据库,该数据库系统在安全性、准确性、运行速度方面均有绝对的优势,并且能够对容量较大的数据库进行处理,效率高。

系统有较高的安全性和较好的性能本文中除了有对程序的系统分析、总体设计、数据库设计、功能实现等主体部分外,在这之前还介绍了与企业仓库管理系统相关的信息、与SQL 的无缝链接技术等。

关键词仓库管理;信息管理系统;B/S结构;数据库管理目录第一章概述1.1项目背景1.2编写目的1.3软件定义1.4开发环境第二章需求分析2.1可行性分析2.2功能分析2.3数据流图2.4数据字典第三章概念结构设计3.1 E-R图第四章逻辑结构设计4.1关系表4.2基本表关系。

4.3规范化第五章软件功能设计5.1系统功能结构图5.2功能任务简介第六章代码设计和界面设计第一章概述1.1项目背景仓库存放的货物品种繁多,堆存方式以及处理过程也非常复杂,随着业务量的增加,仓库管理者需要处理的信息量会大幅上升,因此往往很难及时准确的掌握整个仓库的运作状态。

针对这一情况,本系统在满足仓库的基本管理功能基础上发挥信息系统的智能化,减轻仓库管理人员和操作人员的工作负担。

系统主要的实现目标是监控整个仓库的运转情况;提供完善的出入库登记功能且拥有便捷的查询功能。

1.2编写目的根据任务书要求,假想一小型企业拥有多个仓库,拥有多种物品,且物品在仓库中存在耗损情况。

开发数据库和系统平台解决此问题。

1.3软件介绍本系统包括一下几个模块。

1)货物管理提供入库登记、出库登记、损耗登记三个方面的登记功能方便的修改库存信息。

2)档案管理提供货物档案设置、仓库设置、分类设置三个方面的内容。

分别允许用户更改货物的属性,仓库的属性,分类的属性。

3)查询统计提供入库查询、出库查询、耗损查询、库存查询四个方面的内容。

允许用户随时查询仓库的现状。

4)系统维护提供货物档案设置、仓库设置、分类设置三个方面的内容。

分别允许用户更改货物的属性,仓库的属性,分类的属性。

5)系统信息提供用户管理,更改密码,系统说明,退出系统四项功能。

使软件功能更加完善。

1.4开发环境语言环境 C#语言平台环境 SQLServer2000,VisualStudio2005系统开发环境 Win7,处理器T8300,内存2G,显卡Geforce8600GT系统运行环境 WinXp/Vista/Win7,处理器Pentium II300以上,内存64M以上,硬盘空间3G以上,显卡普通VGA显卡第二章需求分析2.1可行性分析本软件所有处理流程内置,通过界面操作可以完成所有功能能,使用者无需具备SQL及C#语言知识,且软件所有功能完全可以达成编写目的,软件运行硬件要求不高,开发软件是完全可行的。

2.2功能分析本软件所有处理流程内置,通过界面操作可以完成所有功能能,使用者无需具备SQL及C#语言知识,且软件所有功能完全可以达成编写目的,软件运行硬件要求不高,开发软件是完全可行的。

2.3数据流图略2.4数据字典1.数据项第三章概念结构设计3.1 E-R图图略第四章逻辑结构设计4.1关系表4.库存信息5.入库信息6.出库信息7.入库信息UserPassword Varchar(8) 是用户密码UserLimit int 是用户权限4.2基本表关系4.3规范化create database Storeage--物品信息if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[GoodsInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table GoodsInfoGOCREATE TABLE GoodsInfo(GoodsID int identity(1,1) primary key, --物品号编号主GoodsName varchar(20) not null, --物品名SortID int not null, --类别ID 外Spec varchar(10) --规格可空)--类别信息if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[SortInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table SortInfoGOCREATE TABLE SortInfo(SortID int identity(1,1) primary key, --类别ID 主SortName varchar(10) not null, --类别名称SortLimit int not null --类别权限)--仓库信息if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[StorageInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table StorageInfoGOCREATE TABLE StorageInfo(StorageID int identity(1,1) primary key, --仓库ID 主StorageName varchar(20) not null --仓库名称)--库存信息if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[StoreInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table StoreInfoGOCREATE TABLE StoreInfo(SN int identity(1,1) primary key, --库存自动编号主StoreID int not null, --仓库号外GoodsID int not null, --物品号外SortID int not null, --类别ID 外GoodsNum int not null, --物品数量EditDate datetime --修改日期可空)--入库信息if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[InInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table InInfoGOCREATE TABLE InInfo(InOrder int identity(1,1) primary key, --入库单号主StorageID int references StorageInfo(StorageID) not null, --仓库号外GoodsID int references GoodsInfo(GoodsID) not null, --物品号外InNum int not null, --入库数量InUnit varchar(20), --入库单位可空InDate datetime, --入库日期可空InRemark varchar(100) --入库备注可空)--出库信息if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[OutInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table OutInfoGOCREATE TABLE OutInfo(OutOrder int identity(1,1) primary key, --出库单号主StorageID int references StorageInfo(StorageID) not null, --仓库号外GoodsID int references GoodsInfo(GoodsID) not null, --物品号外OutNum int not null, --出库数量OutUnit varchar(20), --出库单位可空OutDate datetime, --出库日期可空OutRemark varchar(100) --出库备注可空)--损耗信息if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[BreakInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table BreakInfoGOCREATE TABLE BreakInfo(BreakOrder int identity(1,1) primary key, --损耗单号主StorageID int references StorageInfo(StorageID) not null, --仓库号外GoodsID int references GoodsInfo(GoodsID) not null, --物品号外BreakNum int not null, --损耗数量BreakDate datetime, --损耗日期可空BreakRemark varchar(100) --损耗备注可空)--用户信息if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[UserInfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)drop table UserInfoGOCREATE TABLE UserInfo(UserID int identity(1,1) primary key, --用户ID 主UserName varchar(20), --用户名UserPassword varchar(8), --用户密码UserLimit int --类别(权限))第五章软件功能设计5.1系统功能结构图图略5.2功能任务简介简述个部分功能代码设计1.主界面using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace XRX{public partial class Main : Form{public Main(){InitializeComponent();}private void入库登记(object sender, EventArgs e){GoodsManage.InManage Aa = new XRX.GoodsManage.InManage(); Aa.ShowDialog();}private void出库登记(object sender, EventArgs e){GoodsManage.OutManage Ab = new XRX.GoodsManage.OutManage();Ab.ShowDialog();}private void耗损登记(object sender, EventArgs e){GoodsManage.BreakManage Ac = new XRX.GoodsManage.BreakManage(); Ac.ShowDialog();}private void货物档案设置(object sender, EventArgs e){InfoManage.GoodsInfo Ba = new Manage.GoodsInfo();Ba.ShowDialog();}private void仓库档案设置(object sender, EventArgs e){InfoManage.StoreInfo Bb = new Manage.StoreInfo();Bb.ShowDialog();}private void分类档案设置(object sender, EventArgs e){InfoManage.SortInfo Bc = new Manage.SortInfo();Bc.ShowDialog();}private void入库查询(object sender, EventArgs e){QueryManage.InQuery Ca = new XRX.QueryManage.InQuery();Ca.ShowDialog();}private void出库查询(object sender, EventArgs e){QueryManage.OutQuery Cb = new XRX.QueryManage.OutQuery();Cb.ShowDialog();}{QueryManage.BreakQuery Cc = new XRX.QueryManage.BreakQuery();Cc.ShowDialog();}private void库存查询(object sender, EventArgs e){QueryManage.StoreQuery Cd = new XRX.QueryManage.StoreQuery();Cd.ShowDialog();}private void备份数据(object sender, EventArgs e){SysManage.DataStore Da = new XRX.SysManage.DataStore();Da.ShowDialog();}private void恢复数据(object sender, EventArgs e){SysManage.DataRevert Db = new XRX.SysManage.DataRevert();Db.ShowDialog();}private void用户管理(object sender, EventArgs e){erManage Ea = new erManage();Ea.ShowDialog();}private void更改密码(object sender, EventArgs e){OtherManage.EditPassword Eb = new XRX.OtherManage.EditPassword(); Eb.ShowDialog();}private void系统说明(object sender, EventArgs e){OtherManage.Help Ec = new XRX.OtherManage.Help();Ec.ShowDialog();}{Application.Exit();}private void Main_FormClosing(object sender, FormClosingEventArgs e) {if (MessageBox.Show("您真的要退出本系统吗?", "提示", MessageBoxButtons.OKCancel, rmation) == DialogResult.OK) Application.Exit();}private void Main_Load(object sender, EventArgs e){}}}2.登陆界面using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace XRX{public partial class Login : Form{public static string strUName = "";public static string strUPwd = "";public Login(){InitializeComponent();}private void Login_Load(object sender, EventArgs e){User u = new User();DataSet ds = u.showLogin();this.cboxUName.DataSource = ds.Tables[0].DefaultView;this.cboxUName.DisplayMember = "UserName";}private void Login_Click(object sender, EventArgs e){DataBase db = new DataBase();SqlParameter[] Pa = new SqlParameter[3];Pa[0] = db.MakeInParam("@UserName",SqlDbType.VarChar, 20,this.cboxUName.Text);Pa[1] = db.MakeInParam("@UserPassword", SqlDbType.VarChar, 20, this.txtPwd.Text);Pa[2] = db.MakeOutParam("@rtn", SqlDbType.Int, 20);db.ExecuteNonQuery(CommandType.StoredProcedure, "sp_Login", Pa);string rtn = Pa[2].Value.ToString();if (rtn == "1"){Main main = new Main();strUName = this.cboxUName.Text;strUPwd = this.txtPwd.Text;this.Hide();main.Show();}elseMessageBox.Show("密码错误!", "登陆失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}private void Exit_Click(object sender, EventArgs e){Application.Exit();}private void cboxUName_SelectedValueChanged(object sender, EventArgs e) {DataBase db = new DataBase();SqlDataReader dr = db.ExecuteReader(CommandType.Text, "select UserLimit from UserInfo where UserName ='" + this.cboxUName.Text.Trim() + "'", null);if (dr.Read()){string a = dr["UserLimit"].ToString();if (a == "1")bURight.Text = "一级用户";if (a == "2")bURight.Text = "二级用户";if (a == "3")bURight.Text = "三级用户";if (a == "4")bURight.Text = "管理员";if (a == "5")bURight.Text = "超级管理员";}dr.Close();}private void cboxUName_SelectedIndexChanged(object sender, EventArgs e) {}private void Login_FormClosing(object sender, FormClosingEventArgs e) {Application.Exit();}}}3.1入库管理界面using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace XRX.GoodsManage{public partial class InManage : Form{int a = 0, aa = 0,bb=0;public InManage(){InitializeComponent();}private void InManage_Load(object sender, EventArgs e) {aaa();}private void aaa(){DataBase db = new DataBase();DataSet ds = db.GetDs(CommandType.StoredProcedure, "up_findStro", null);this.dgvISManage.DataSource = ds.Tables[0];this.cboxSName.DataSource = ds.Tables[0].DefaultView;this.cboxSName.DisplayMember = "StorageName";boBox1.DataSource = ds.Tables[0].DefaultView;boBox1.DisplayMember = "GoodsName";this.dgvISManage.Columns[0].Visible = false;this.dgvISManage.Columns[1].HeaderText = "仓库名";this.dgvISManage.Columns[2].HeaderText = "物品名";this.dgvISManage.Columns[3].HeaderText = "入库数量";this.dgvISManage.Columns[4].HeaderText = "入库单位";this.dgvISManage.Columns[5].HeaderText = "入库日期";this.dgvISManage.Columns[6].HeaderText = "备注";this.dgvISManage.Columns[1].Width = 100;this.dgvISManage.Columns[2].Width = 80;this.dgvISManage.Columns[3].Width = 80;this.dgvISManage.Columns[4].Width = 80;this.dgvISManage.Columns[5].Width = 80;this.dgvISManage.Columns[6].Width = 100;this.dgvISManage.ReadOnly = true;//只读dgvISManage.SelectionMode =DataGridViewSelectionMode.FullRowSelect;//选中行this.dgvISManage.AllowUserToResizeRows = false;this.dgvISManage.AllowUserToResizeColumns = false;//禁止拖动this.dgvISManage.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//文本居中this.dgvISManage.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//表头居中}private void dgvISManage_CellClick(object sender, DataGridViewCellEventArgs e){try{a =Convert.ToInt32(this.dgvISManage.Rows[e.RowIndex].Cells[0].Value.ToString()) ;this.cboxSName.Text =this.dgvISManage.Rows[e.RowIndex].Cells[1].Value.ToString();this.textBox1.Text =this.dgvISManage.Rows[e.RowIndex].Cells[7].Value.ToString();boBox1.Text =this.dgvISManage.Rows[e.RowIndex].Cells[2].Value.ToString();this.txtGSpec.Text =this.dgvISManage.Rows[e.RowIndex].Cells[3].Value.ToString();this.dateTimePicker1.Value=Convert.ToDateTime( this.dgvISManage.Rows[e.RowIndex].Cells[5].Value.ToString());this.txtGIPrice.Text =this.dgvISManage.Rows[e.RowIndex].Cells[4].Value.ToString();this.txtISRemark.Text =this.dgvISManage.Rows[e.RowIndex].Cells[6].Value.ToString();}catch { }}private void btnAdd_Click(object sender, EventArgs e){DataBase db = new DataBase();SqlParameter[] Pa = new SqlParameter[6];Pa[0] = db.MakeInParam("@StorageID", SqlDbType.Int, 4, aa);Pa[1] = db.MakeInParam("@GoodsID", SqlDbType.Int, 4, bb);Pa[2] = db.MakeInParam("@InNum", SqlDbType.Int, 4,Convert.ToInt32(this.txtGSpec.Text));Pa[3] = db.MakeInParam("@InUnit", SqlDbType.VarChar, 20,this.txtGIPrice.Text);Pa[4] = db.MakeInParam("@InDate", SqlDbType.VarChar, 20,this.dateTimePicker1.Value);Pa[5] = db.MakeInParam("@InRemark", SqlDbType.VarChar, 20,this.txtISRemark.Text);int b=db.ExecuteNonQuery(CommandType.StoredProcedure, "up_InStore", Pa);int Add = db.ExecuteNonQuery(CommandType.Text, "insert into InInfo (StorageID,GoodsID,InNum,InUnit,InDate,InRemark) values ('" + aa + "','" + bb + "','" + this.txtGSpec.Text + "','" + this.txtGIPrice + "','" +this.dateTimePicker1.Value + "','" + this.txtISRemark.Text + "')", null);if (Add == 1){MessageBox.Show("添加入库信息成功", "添加成功", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);aaa();else{MessageBox.Show("添加入库信息失败", "添加失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}}private void cboxSName_SelectedIndexChanged(object sender, EventArgs e) {DataBase db = new DataBase();SqlDataReader dr = db.ExecuteReader(CommandType.Text, "select StorageID from StorageInfo where StorageName ='"+this.cboxSName.Text+"'", null);if(dr.Read())aa = Convert.ToInt32(dr["StorageID"].ToString());dr.Close();SqlDataReader dr2 = db.ExecuteReader(CommandType.Text, "select GoodsID from GoodsInfo where GoodsName='" + boBox1.Text+ "'", null);if (dr2.Read())bb = Convert.ToInt32(dr2["GoodsID"].ToString());dr2.Close();}private void btnExit_Click(object sender, EventArgs e){this.Close();}private void btnDel_Click(object sender, EventArgs e){DataBase db = new DataBase();int Delete = db.ExecuteNonQuery(CommandType.Text, "delete from InInfo where InOrder='" + a + "' ", null);if (Delete == 1){MessageBox.Show("删除入库信息成功", "修改成功", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);aaa();}else{MessageBox.Show("删除入库信息失败", "修改失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}}}3.2出库管理界面using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace XRX.GoodsManage{public partial class OutManage : Form {int a = 0, aa = 0, bb = 0;public OutManage(){InitializeComponent();}private void btnAdd_Click(object sender, EventArgs e){DataBase db = new DataBase();SqlParameter[] Pa = new SqlParameter[6];Pa[0] = db.MakeInParam("@StorageID", SqlDbType.Int, 4, aa);Pa[1] = db.MakeInParam("@GoodsID", SqlDbType.Int, 4, bb);Pa[2] = db.MakeInParam("@OutNum", SqlDbType.Int, 4,Convert.ToInt32(this.txtGSpec.Text));Pa[3] = db.MakeInParam("@OutUnit", SqlDbType.VarChar, 20,this.txtGIPrice.Text);Pa[4] = db.MakeInParam("@OutDate", SqlDbType.VarChar, 20,this.dateTimePicker1.Value);Pa[5] = db.MakeInParam("@OutRemark", SqlDbType.VarChar, 20,this.txtISRemark.Text);int b = db.ExecuteNonQuery(CommandType.StoredProcedure, "up_OutStore", Pa);int Add = db.ExecuteNonQuery(CommandType.Text, "insert into OutInfo (StorageID,GoodsID,OutNum,OutUnit,OutDate,OutRemark) values ('" + aa + "','" + bb + "','" + this.txtGSpec.Text + "','" + this.txtGIPrice + "','" +this.dateTimePicker1.Value + "','" + this.txtISRemark.Text + "')", null);if (Add == 1){MessageBox.Show("添加出库信息成功", "添加成功", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);aaa();}else{MessageBox.Show("添加出库信息失败", "添加失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}}private void btnDel_Click(object sender, EventArgs e){DataBase db = new DataBase();int Delete = db.ExecuteNonQuery(CommandType.Text, "delete from OutInfo where OutOrder='" + a + "' ", null);if (Delete == 1){MessageBox.Show("删除入库信息成功", "修改成功", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);aaa();}else{MessageBox.Show("删除入库信息失败", "修改失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}}private void btnExit_Click(object sender, EventArgs e){this.Close();}private void OutManage_Load(object sender, EventArgs e){aaa();}private void aaa(){DataBase db = new DataBase();DataSet ds = db.GetDs(CommandType.StoredProcedure, "up_findStrob", null);this.dgvISManage.DataSource = ds.Tables[0];this.cboxSName.DataSource = ds.Tables[0].DefaultView;this.cboxSName.DisplayMember = "StorageName";boBox1.DataSource = ds.Tables[0].DefaultView;boBox1.DisplayMember = "GoodsName";this.dgvISManage.Columns[0].Visible = false;this.dgvISManage.Columns[1].HeaderText = "仓库名";this.dgvISManage.Columns[2].HeaderText = "物品名";this.dgvISManage.Columns[3].HeaderText = "出库数量";this.dgvISManage.Columns[4].HeaderText = "出库单位";this.dgvISManage.Columns[5].HeaderText = "出库日期";this.dgvISManage.Columns[6].HeaderText = "备注";this.dgvISManage.Columns[1].Width = 100;this.dgvISManage.Columns[2].Width = 80;this.dgvISManage.Columns[3].Width = 80;this.dgvISManage.Columns[4].Width = 80;this.dgvISManage.Columns[5].Width = 80;this.dgvISManage.Columns[6].Width = 100;this.dgvISManage.ReadOnly = true;//只读dgvISManage.SelectionMode =DataGridViewSelectionMode.FullRowSelect;//选中行this.dgvISManage.AllowUserToResizeRows = false;this.dgvISManage.AllowUserToResizeColumns = false;//禁止拖动this.dgvISManage.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//文本居中this.dgvISManage.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//表头居中}private void dgvISManage_CellClick(object sender, DataGridViewCellEventArgs e){try{a =Convert.ToInt32(this.dgvISManage.Rows[e.RowIndex].Cells[0].Value.ToString());this.cboxSName.Text =this.dgvISManage.Rows[e.RowIndex].Cells[1].Value.ToString();this.textBox1.Text =this.dgvISManage.Rows[e.RowIndex].Cells[7].Value.ToString();boBox1.Text =this.dgvISManage.Rows[e.RowIndex].Cells[2].Value.ToString();this.txtGSpec.Text =this.dgvISManage.Rows[e.RowIndex].Cells[3].Value.ToString();this.dateTimePicker1.Value =Convert.ToDateTime(this.dgvISManage.Rows[e.RowIndex].Cells[5].Value.ToString ());this.txtGIPrice.Text =this.dgvISManage.Rows[e.RowIndex].Cells[4].Value.ToString();this.txtISRemark.Text =this.dgvISManage.Rows[e.RowIndex].Cells[6].Value.ToString();}catch { }}private void cboxSName_SelectedIndexChanged(object sender, EventArgs e) {DataBase db = new DataBase();SqlDataReader dr = db.ExecuteReader(CommandType.Text, "select StorageID from StorageInfo where StorageName ='" + this.cboxSName.Text + "'", null);if (dr.Read())aa = Convert.ToInt32(dr["StorageID"].ToString());dr.Close();SqlDataReader dr2 = db.ExecuteReader(CommandType.Text, "selectGoodsID from GoodsInfo where GoodsName='" + boBox1.Text + "'", null);if (dr2.Read())bb = Convert.ToInt32(dr2["GoodsID"].ToString());dr2.Close();}}}3.3损耗管理界面using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace XRX.GoodsManage{public partial class BreakManage : Form{int a = 0, aa = 0, bb = 0;public BreakManage(){InitializeComponent();}private void btnAdd_Click(object sender, EventArgs e){DataBase db = new DataBase();SqlParameter[] Pa = new SqlParameter[6];Pa[0] = db.MakeInParam("@StorageID", SqlDbType.Int, 4, aa);Pa[1] = db.MakeInParam("@GoodsID", SqlDbType.Int, 4, bb);Pa[2] = db.MakeInParam("@BreakNum", SqlDbType.Int, 4,Convert.ToInt32(this.txtGSpec.Text));Pa[3] = db.MakeInParam("@BreakDate", SqlDbType.VarChar, 20,this.dateTimePicker1.Value);Pa[4] = db.MakeInParam("@BreakRemark", SqlDbType.VarChar, 20,this.txtISRemark.Text);int b = db.ExecuteNonQuery(CommandType.StoredProcedure,"up_BreakStore", Pa);int Add = db.ExecuteNonQuery(CommandType.Text, "insert into BreakInfo (StorageID,GoodsID,BreakNum,BreakDate,BreakRemark) values ('"+ aa + "','"+ bb + "','" + this.txtGSpec.Text + "','" + this.dateTimePicker1.Value + "','" + this.txtISRemark.Text + "')", null);if (Add == 1){MessageBox.Show("添加损耗信息成功", "添加成功", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);aaa();}else{MessageBox.Show("添加损耗信息失败", "添加失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}}private void btnDel_Click(object sender, EventArgs e){DataBase db = new DataBase();int Delete = db.ExecuteNonQuery(CommandType.Text, "delete from BreakInfo where BreakOrder='" + a + "' ", null);if (Delete == 1){MessageBox.Show("删除入库信息成功", "修改成功", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);aaa();}else{MessageBox.Show("删除入库信息失败", "修改失败", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);}}private void btnExit_Click(object sender, EventArgs e){this.Close();}private void BreakManage_Load(object sender, EventArgs e){aaa();}private void aaa(){DataBase db = new DataBase();DataSet ds = db.GetDs(CommandType.StoredProcedure, "up_findStroc", null);this.dgvISManage.DataSource = ds.Tables[0];this.cboxSName.DataSource = ds.Tables[0].DefaultView;this.cboxSName.DisplayMember = "StorageName";boBox1.DataSource = ds.Tables[0].DefaultView;boBox1.DisplayMember = "GoodsName";this.dgvISManage.Columns[0].Visible = false;this.dgvISManage.Columns[1].HeaderText = "仓库名";this.dgvISManage.Columns[2].HeaderText = "物品名";this.dgvISManage.Columns[3].HeaderText = "损耗数量";this.dgvISManage.Columns[4].HeaderText = "损耗日期";this.dgvISManage.Columns[5].HeaderText = "备注";this.dgvISManage.Columns[1].Width = 100;this.dgvISManage.Columns[2].Width = 80;this.dgvISManage.Columns[3].Width = 80;this.dgvISManage.Columns[4].Width = 80;this.dgvISManage.Columns[5].Width = 100;this.dgvISManage.ReadOnly = true;//只读dgvISManage.SelectionMode =DataGridViewSelectionMode.FullRowSelect;//选中行this.dgvISManage.AllowUserToResizeRows = false;this.dgvISManage.AllowUserToResizeColumns = false;//禁止拖动this.dgvISManage.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//文本居中this.dgvISManage.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;//表头居中}private void dgvISManage_CellClick(object sender, DataGridViewCellEventArgs e){try{a =Convert.ToInt32(this.dgvISManage.Rows[e.RowIndex].Cells[0].Value.ToString());this.cboxSName.Text =this.dgvISManage.Rows[e.RowIndex].Cells[1].Value.ToString();this.textBox1.Text =this.dgvISManage.Rows[e.RowIndex].Cells[6].Value.ToString();boBox1.Text =this.dgvISManage.Rows[e.RowIndex].Cells[2].Value.ToString();this.dateTimePicker1.Value =Convert.ToDateTime(this.dgvISManage.Rows[e.RowIndex].Cells[4].Value.ToString ());this.txtGSpec.Text =this.dgvISManage.Rows[e.RowIndex].Cells[3].Value.ToString();this.txtISRemark.Text =this.dgvISManage.Rows[e.RowIndex].Cells[5].Value.ToString();}catch { }}private void cboxSName_SelectedIndexChanged(object sender, EventArgs e) {DataBase db = new DataBase();SqlDataReader dr = db.ExecuteReader(CommandType.Text, "select StorageID from StorageInfo where StorageName ='" + this.cboxSName.Text + "'", null);if (dr.Read())aa = Convert.ToInt32(dr["StorageID"].ToString());dr.Close();SqlDataReader dr2 = db.ExecuteReader(CommandType.Text, "select GoodsID from GoodsInfo where GoodsName='" + boBox1.Text + "'", null);if (dr2.Read())bb = Convert.ToInt32(dr2["GoodsID"].ToString());dr2.Close();}}}4.1货物信息管理using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace Manage{public partial class GoodsInfo : Form {public GoodsInfo(){InitializeComponent();}}}。

相关文档
最新文档