物资管理系统数据库设计
㈠ 怎样用sql写一个仓库管理系统
首先配置SQLSERVER2005:
打开”Microsoft SQL Server Management Studio“ 直接用Windows 用户连接进入,再在“安全性”中的“登录名”内的“新建登录名”,你就对应的添好“确定”就可以了。
再在你对应的“数据库”里“安全性”用户,把你建的用户添加进去。
关键地方,查看“服务器 属性”在 “安全性”选上 “SQL Server 和 Windows 身份验证模式”点 “确定”系统会提示你重新启动SQL Server 你“停止”重启一下就配好了。
接着看C#连接SQL Server2005的代码语句:
strcon = strcon + @"Data Source=" + strcons[0];
strcon = strcon + "," + strcons[2] + ";";
strcon = strcon + "Network Library=" + strcons[1] + ";";
strcon = strcon + "Initial Catalog=" + strcons[3] + ";";
strcon = strcon + "User ID=" + strcons[4] + ";";
strcon = strcon + "Password=" + strcons[5] + ";";
strcon = strcon + "Persist Security Info=True";
strcons[0] 服务器名称,一般添机器的IP
strcons[1]协议DBMSSOCN(为tcp/ip协议)
strcons[2]]端口号,一般为1433
strcons[3] 数据库名
strcons[4] 用户名
strcons[5]密码
端口号也要配置一下:
在控制面板里的服务和应用程序中的SQL Server配置管理中的SQL Server 2005网络配置内的SQL
Server2005的协议TCP/IP默认为已禁用,在它的属性设置它的端口号为1433 “确定” 启动。
㈡ 物资管理系统
/*建立学院物资管理系统的数据库*/
create database 学院物资管理系统
on
(name = Manager_dat,
filename = 'G:\SQL Data\e\Manager.mdf',
size = 5,
maxsize= 10,
filegrowth = 2)
/***************************建立员工表并且进行完整性约束***************************/
create table 员工表
(
员工号 char(10) primary key,
员工姓名 char(40) not null,
员工年龄 smallint check(员工年龄<70 and 员工年龄>15),
性别 char(2)check (性别 in ('男','女')) ,
家庭住址 char(40),
电话 char(12) check(isnumeric(电话)=1)
)
/*修改员工表的部分属性的定义*/
alter table 员工表 alter column 员工姓名 char(10)
alter table 员工表 alter column 家庭住址 char(30)
/*运用语句插入员工信息*/
insert 员工表 values ('06110001','张良','32','男','八一大道887号','3928101')
insert 员工表 values ('06110004','花黄','23','男','八一大道7号','3928434')
insert 员工表 values ('06110003','刘婷','22','女','双港大道12号','3928666')
insert 员工表 values ('06110005','王芳','36','女','莲花大道65号','3928766')
insert 员工表 values ('06110006','于民','51','男','中三大道3号','3928764')
insert 员工表 values ('06110002','古起','45','男','世纪花园9090号','3928234')
insert 员工表 values ('06110007','范瑛','34','女','世界花园887号','3928767')
insert 员工表 values ('06110008','吴泽','26','男','八一大道433号','3928145')
insert 员工表 values ('06110009','徐能','37','男','莲花大道87号','3928187')
/*通过员工编号建立升序索引*/
create index sup_idx1 on 员工表(员工号)
/***********************************建立供应商情况表***********************************/
create table 供应商情况表
(
供应商号 char(6) primary key ,
供应商名 varchar(40) not null,
供应商地址 varchar(40),
供应商电话 char(12) check(isnumeric(供应商电话)=1)
)
/*输入具体的供应商信息*/
insert 供应商情况表 values ('A0001','奥博文具有限公司','北京市海淀区经济开发区119号','212919899')
insert 供应商情况表 values ('A0004','爱都文具有限公司','上海市浦东区经济开发区23号','543534939')
insert 供应商情况表 values ('A0006','京二胡用品有限公司','北京市海淀区经济开发区65号','22322293')
insert 供应商情况表 values ('A0002','新势力体育用品有限公司','武汉市武昌区经济开发区80号','271719899')
insert 供应商情况表 values ('A0007','彪马有限公司','武汉市汉口区经济开发区11号','2125433344')
insert 供应商情况表 values ('A0008','耐克体育用品有限公司','北京市东城区经济开发区41号','21324664')
insert 供应商情况表 values ('A0009','李宁体育用品有限公司','南京市惶惶区经济开发区675号','21322221')
insert 供应商情况表 values ('A0010','每克体育用品有限公司','江苏市经济开发区2343号','21324545')
insert 供应商情况表 values ('A0011','安踏体育用品有限公司','杭州市经济开发区41号','21329645')
insert 供应商情况表 values ('A0012','卡帕体育用品有限公司','香港经济开发区43号','21322131')
insert 供应商情况表 values ('A0013','阿迪达斯体育用品有限公司','澳门市东城区经济开发区54号','21324657')
insert 供应商情况表 values ('A0014','匡威体育用品有限公司','台北市东城区经济开发区12号','21324345')
/*通过供应商号建立升序索引*/
create index sup_idx2 on 供应商情况表(供应商号)
/***************************************建立采购单表***************************************/
create table 采购单
(
采购单号 char(6) primary key check(ASCII(left(采购单号,1))>=65 and ASCII(left(采购单号,2))>=65),
员工号 char(10) foreign key references 员工表,
供应商号 char(6) foreign key references 供应商情况表,
采购日期 datetime
)
/*修改采购日期的定义*/
ALTER TABLE 采购单 alter column 采购日期 smalldatetime
/*输入具体的采购单信息*/
insert 采购单 values ('CG0001','06110001','A0008','2007-7-23')
insert 采购单 values ('CG0002','06110009','A0004','2006-4-3')
insert 采购单 values ('CG0003','06110009','A0006','2007-8-6')
insert 采购单 values ('CG0004','06110007','A0001','2008-4-3')
insert 采购单 values ('CG0005','06110006','A0002','2006-9-2')
insert 采购单 values ('CG0006','06110003','A0002','2008-10-8')
insert 采购单 values ('CG0007','06110005','A0001','2006-6-7')
insert 采购单 values ('CG0008','06110008','A0004','2007-5-5')
insert 采购单 values ('CG0009','06110002','A0006','2008-4-13')
insert 采购单 values ('CG0010','06110003','A0007','2006-4-26')
insert 采购单 values ('CG0011','06110001','A0002','2007-1-27')
insert 采购单 values ('CG0012','06110002','A0003','2006-7-7')
insert 采购单 values ('CG0015','06110008','A0006','2007-4-5')
insert 采购单 values ('CG0014','06110002','A0002','2008-11-13')
insert 采购单 values ('CG0013','06110003','A0006','2006-10-6')
insert 采购单 values ('CG0017','06110001','A0005','2007-3-7')
/*按员工号建立升序索引*/
create index sup_idx3 on 采购单(员工号)
/**************************************建立采购明细表************************************/
create table 采购明细表
(
序号 char(8) primary key,
采购单号 char(6) foreign key references 采购单,
物品编号 char(8) foreign key references 物资情况明细表,
数量 smallint check(数量>0)
)
/*输入具体的采购单信息*/
insert 采购明细表 values('20001','CG0001','50001','20')
insert 采购明细表 values('20002','CG0003','50003','10')
insert 采购明细表 values('20003','CG0002','50005','20')
insert 采购明细表 values('20004','CG0005','50006','20')
insert 采购明细表 values('20005','CG0006','50001','20')
insert 采购明细表 values('20006','CG0008','50007','30')
insert 采购明细表 values('20007','CG0009','50004','20')
insert 采购明细表 values('20008','CG0002','50001','40')
insert 采购明细表 values('20009','CG0003','50004','20')
insert 采购明细表 values('20010','CG0005','50001','120')
insert 采购明细表 values('20011','CG0011','50003','20')
/***************************************建立仓库表***************************************/
create table 仓库表
(
仓库号 char(5) primary key,
员工号 char(10) foreign key references 员工表,
仓库地址 varchar(40),
仓库电话 char(12) check(isnumeric(仓库电话)=1)
)
/*输入具体仓库信息*/
insert 仓库表 values('01','06110005','南区教学楼509','89891711')
insert 仓库表 values('02','06110001','北区教学楼411','12122121')
insert 仓库表 values('03','06110006','北区教学楼312','43891711')
insert 仓库表 values('04','06110009','西区教学楼119','43843212')
/*按仓库号建立升序索引*/
create index sup_idx4 on 仓库表(仓库号)
/**************************************建立物资情况明细表***************************************/
create table 物资情况明细表
(
物品编号 char(8) primary key,
物品名称 char(40) ,
仓库号 char(5) foreign key references 仓库表,
物品单价 SmallMoney,
数量 smallint check(数量>0)
)
/*输入具体物资信息*/
insert 物资情况明细表 values('50001','健身足球','03',convert(SmallMoney,89),'20')
insert 物资情况明细表 values('50002','健身篮球','01',convert(SmallMoney,165),'20')
insert 物资情况明细表 values('50005','田径排球','01',convert(SmallMoney,77),'20')
insert 物资情况明细表 values('50003','乒乓球','04',convert(SmallMoney,2),'200')
insert 物资情况明细表 values('50006','长毛毽子','02',convert(SmallMoney,6),'100')
insert 物资情况明细表 values('50008','彩色粉笔','02',convert(SmallMoney,3),'500')
insert 物资情况明细表 values('50009','红色黑板擦','03',convert(SmallMoney,7),'80')
insert 物资情况明细表 values('50004','教师钢笔','04',convert(SmallMoney,10),'250')
insert 物资情况明细表 values('50011','会议纪律本','02',convert(SmallMoney,15),'100')
insert 物资情况明细表 values('50007','便捷座椅','04',convert(SmallMoney,20),'50')
/*分别建立相应的索引:按物品编号、物品单价、数量*/
create index sup_idx5 on 物资情况明细表(物品编号)
create index sup_idx6 on 物资情况明细表(物品单价)
create index sup_idx7 on 物资情况明细表(数量)
/**************************************建立学生情况表***************************************/
create table 学生情况表
(
学生号 char(8) primary key ,
学生姓名 char(20),
性别 char(2) check(性别 in ('男', '女')),
年龄 int check (年龄 > 0),
系别名称 char(20) not null check(系别名称 in ('土木工程系','机电工程系','经管系','信息工程系','外法系')),
所属校区 char(10) not null check(所属校区 in ('南昌校区','抚州校区'))
)
/*输入具体学生信息*/
insert into 学生情况表 values('70001','徐又能','女','27','土木工程系','抚州校区')
insert into 学生情况表 values('70003','张好猪','男','17','机电工程系','南昌校区')
insert into 学生情况表 values('70006','吴泽','女','21','经管系','抚州校区')
insert into 学生情况表 values('70002','往惶惶','男','21','外法系','南昌校区')
insert into 学生情况表 values('70004','刘青云','男','21','经管系','抚州校区')
insert into 学生情况表 values('70005','吴铁男','男','23','信息工程系','南昌校区')
insert into 学生情况表 values('70008','郭嘉','女','25','经管系','抚州校区')
insert into 学生情况表 values('70007','杜鹃','女','22','机电工程系','南昌校区')
insert into 学生情况表 values('70009','徐泽','男','22','外法系','抚州校区')
insert into 学生情况表 values('70013','六库一','男','21','信息工程系','南昌校区')
insert into 学生情况表 values('70011','无比','男','19','土木工程系','抚州校区')
insert into 学生情况表 values('70010','金元','女','17','信息工程系','南昌校区')
insert into 学生情况表 values('70012','安红','女','26','经管系','南昌校区')
/*建立索引*/
create index sup_idx8 on 学生情况表(学生号)
create index sup_idx9 on 学生情况表(年龄)
/**************************************建立登记表***************************************/
create table 登记表
(
登记序号 char(10) primary key ,
学生号 char(8) foreign key references 学生情况表 ,
物品编号 char(8) foreign key references 物资情况明细表,
数量 smallint check(数量>0),
更新时间 smalldatetime
)
/*输入详细信息*/
insert 登记表 values('200801','70003','50003','4','2008-5-3')
insert 登记表 values('200802','70001','50001','2','2008-2-3')
insert 登记表 values('200803','70002','50002','3','2008-5-4')
insert 登记表 values('200804','70006','50005','5','2008-5-6')
insert 登记表 values('200805','70004','50003','15','2008-2-5')
insert 登记表 values('200806','70007','50008','11','2008-3-4')
insert 登记表 values('200807','70008','50011','6','2008-5-26')
insert 登记表 values('200808','70007','50008','29','2008-3-14')
insert 登记表 values('200809','70009','50007','8','2008-5-11')
insert 登记表 values('200810','70005','50001','6','2008-5-13')
insert 登记表 values('200811','70012','50008','7','2008-5-23')
/*建立索引*/
create index sup_idx10 on 登记表(学生号)
create index sup_idx11 on 登记表(数量)
create index sup_idx12 on 登记表(登记序号)
/**************************************建立视图***************************************/
/*建立员工表v_yg视图**/
create view v_yg as select * from 员工表
/*建立供应商情况表v_gys视图**/
create view v_gys as select * from 供应商情况表
/*建立采购单v_cg视图**/
create view v_cg as select * from 采购单
/*建立采购明细表v_cgmx试图*/
create view v_cgmx as select * from 采购明细表
/*建立仓库表v_ck视图**/
create view v_ck as select * from 仓库表
/*建立物资情况明细表v_wz视图**/
create view v_wz as select * from 物资情况明细表
/*建立登记表v_dj视图**/
create view v_dj as select * from 登记表
/*建立学生情况表v_xs视图**/
create view v_xs as select * from 学生情况表
/*****建立采购情况视图表******/
create view v_cgqk as
select 采购单.采购单号,采购明细表.物品编号,数量,员工表.员工号,员工姓名,员工年龄,电话,供应商名,供应商地址,供应商电话,采购日期
from 员工表,供应商情况表,采购单,采购明细表
where 员工表.员工号= 采购单.员工号 and
供应商情况表.供应商号 = 采购单.供应商号 and
采购明细表.采购单号 = 采购单.采购单号
/*****建立物资存放情况视图****/
create view v_kcqk as
select 物品编号,物品名称,物品单价,数量,仓库表.仓库号,仓库地址,仓库电话,员工表.员工号,员工姓名,员工年龄,电话
from 物资情况明细表,仓库表,员工表
where 物资情况明细表.仓库号 = 仓库表.仓库号 and
员工表.员工号 = 仓库表.员工号
/*****建立学生借物资情况视图表******/
create view v_xsjwz as
select 登记序号,学生情况表.学生号,学生姓名,系别名称,物资情况明细表.物品编号,物品名称,物品单价,登记表.数量,更新时间
from 物资情况明细表,登记表,学生情况表
where 物资情况明细表.物品编号 = 登记表.物品编号 and
学生情况表.学生号 = 登记表.学生号
/************************************建立存储过程******************************/
/*通过学生号查询学生情况表*/
create proc xs_getmp ;1
(@num char(8)=NULL)
as
if @num is NULL
begin
print ' 必须提供一个学生号! '
return 13
end
if not exists(select * from v_xs where 学生号=@num)
begin
print ' 没用满足条件的记录! '
return 0
end
select * from 学生情况表 where 学生号=@num
execute xs_getmp ;1 '70004'
/*通过物品名称查询物资情况明细表的存储过程*/
create proc wz_getmp ;1
(@name char(40)=NULL)
as
if @name is NULL
begin
print ' 你必须提供一个物品名称来进行查询! '
return 13
end
if not exists(select * from 物资情况明细表 where 物品名称=@name)
begin
print ' 没用满足条件的记录! '
return 0
end
select * from 物资情况明细表 where 物品名称=@name
execute wz_getmp ;1 '乒乓球'
/*通过员工号来查询职工经手的采购单信息的存储过程*/
create proc cgqk_getmp ;1
(@yg_num char(10) =NULL)
as
if @yg_num is NULL
begin
print ' 你必须提供一个员工号来进行查询! '
return 13
end
if not exists(select * from v_cgqk where 员工号=@yg_num)
begin
print ' 没用满足条件的记录! '
return 0
end
select * from v_cgqk where 员工号=@yg_num
execute cgqk_getmp;1 '06110009'
/*通过物品编号来查询物品信息以及所在仓库信息的存储过程*/
create proc kcqk_getmp ;1
(@wp_num char(10) =NULL)
as
if @wp_num is NULL
begin
print ' 你必须提供一个物品编号来进行查询! '
return 13
end
if not exists(select * from v_kcqk where 物品编号=@wp_num)
begin
print ' 没用满足条件的记录! '
return 0
end
select * from v_kcqk where 物品编号=@wp_num
execute kcqk_getmp;1 '50004'
/*通过物品编号来查询该物品明细信息*/
create proc kcqk_getinf;1
(@wp_num char(10) =NULL)
as
if @wp_num is NULL
begin
print ' 你必须提供一个物品编号来进行查询! '
return 13
end
if not exists(select * from 物资情况明细表 where 物品编号=@wp_num)
begin
print ' 没用满足条件的记录! '
return 0
end
select * from 物资情况明细表 where 物品编号=@wp_num
exec kcqk_getinf;1 '50002'
/*通过学生号来查询登记记录的信息的存储过程*/
create proc xsjwz_getmp ;1
(@xs_num char(10) =NULL)
as
if @xs_num is NULL
begin
print ' 你必须提供一个学生号来进行查询! '
return 13
end
if not exists(select * from v_xsjwz where 学生号=@xs_num)
begin
print ' 没用满足条件的记录! '
return 0
end
select * from v_xsjwz where 学生号=@xs_num
exec xsjwz_getmp;1 '70007'
/*通过输入学生的姓名查询某学生的借进的情况*/
create proc xsjwz_getmp ;2
(@xs_name char(20) =NULL)
as
if @xs_name is NULL
begin
print ' 你必须提供一个学生姓名来进行查询! '
return 13
end
if not exists(select * from v_xsjwz where 学生姓名=@xs_name)
begin
print ' 没用满足条件的记录! '
return 0
end
select * from v_xsjwz where 学生姓名=@xs_name
exec xsjwz_getmp;2 '安红'
/*输入物品的数量来查询大于此数量的借出情况*/
create proc xsjwz_getimf ;1
(@wp_count smallint)
as
select * from v_xsjwz where 数量>=@wp_count
exec xsjwz_getimf;1 10
/************************************建立触发器******************************/
/*实现仓库更新、插入的数据完整性约束*/
create trigger ck_gl
on 仓库表
for insert,update
as
declare @yg_num char(10),@ck_num char(5)
select @yg_num = 员工号,@ck_num = 仓库号 from inserted
if exists(select * from 仓库表 where 员工号= @yg_num and 仓库号<>@ck_num)
begin
raiserror('该职工已经在这个仓库工作',16,1)
rollback transaction
end
insert 仓库表 values('05','06110007','北区教学楼211','9812911189')
insert 仓库表 values('06','06110008','北区教学楼121','9231311121')
/*实现新增物资采购单明细表登记*/
create trigger wz_insert
on 采购明细表 for insert
as
declare @wp_num char(8)
declare @count int
declare @TotalCount int,@NewTotalCount int
select @TotalCount =数量 from 物资情况明细表 where 物品编号=(select 物品编号 from inserted)
select @wp_num=物品编号 from 物资情况明细表 where 物品编号=(select 物品编号 from inserted)
if @wp_num =''
begin
print '非法物资编号!'
rollback transaction
end
else
select @count=数量 from inserted
update 物资情况明细表 set 数量=@TotalCount+@count where 物品编号=(select 物品编号 from inserted)
insert 采购明细表 values('20019','CG0004','50004','43')
/*实现新增学生借出登记操作*/
create trigger dj_insert
on 登记表
for insert
as
declare @xs_num char(8)
declare @count int
declare @TotalCount int,@NewTotalCount int
--select @shuliang=数量 from 登记表
select @TotalCount =数量 from 物资情况明细表 where 物品编号=(select 物品编号 from inserted)
select @xs_num=学生号 from 学生情况表 where 学生号=(select 学生号 from inserted)
if @xs_num=''
begin
print '非法学生号!'
rollback transaction
end
if not exists (select * from 物资情况明细表 where 物品编号=(select 物品编号 from inserted))
begin
raiserror('非法物品编号!',1,1)
rollback transaction
end
else
select @count=数量 from inserted
update 物资情况明细表 set 数量=@TotalCount-@count where 物品编号=(select 物品编号 from inserted)
select @NewTotalCount =数量 from 物资情况明细表 where 物品编号=(select 物品编号 from inserted)
if @NewTotalCount<=0
begin
print '该物品已经用完'
rollback transaction
end
insert into 登记表 values('200820','32332322','50004','2','2008-10-2')
我自己写的,希望对你有帮助
㈢ 课程设计仓库管理系统的数据库制作
数据库原理及应用课程设计
一、课程设计的目的
《数据库原理及应用》课程设计是计算机科学与技术专业集中实践性环节之一,是学习完《数据库原理及应用》课程后进行的一次全面的综合练习。本课程设计主要在于加深学生对数据库基础理论和基本知识的理解,掌握数据库应用系统设计开发的基本方法,达到进一步使学生综合运用所学知识和增强实际动手能力的目的。
二、课程设计的任务与要求
要求学生根据自身对题目的理解情况,从给定的设计题目中选择一个,以MS SQL Server作为后台数据库平台,以PowerBuilder作为前台开发工具,完成一个小型数据库应用系统的系统的分析、设计和开发。
三、课程设计说明书
仓储管理系统
对于一个以生产或经营产品为主要业务的单位来说,仓库管理系统至关重要。高效方便的仓库管理系统,可以为生产经营提供坚强的后盾和有力的支持。效率低下甚至是混乱不堪的仓库管理系统,无疑会成为企业健康发展的拖累甚至是枷锁。使企业发展动力不足。本次数据库设计实现了仓库管理的高效化、电子化。通过本系统可以方便地实现仓库管理中的货物登记、出库入库等操作,使仓库管理井井有条。
1系统需求分析
1.1系统功能需求分析
仓库管理系统主要实现对库存商品的管理,对商品出库、入库的管理,和对仓库管理系统维护的功能。具体要实现的功能包括:
1)库存商品管理
查看数据库中商品的名称、编号、单价等信息。
2)商品出库、入库管理
入库、出库单纪录本次入库、出库的货物名称、数量,入库、出库的时间、商品单价以及总价,入库、出库的经手人等。
3)商品的查询
输入商品的编号或者商品的名称查询信息
4)用户管理
用户可以修改登录密码
1. 2数据需求分析
1.员工(ID ,姓名,密码,权限)
2.商品(商品名,商品编号,所属类,单价)
3.出货表(商品名,商品编号,数量,总价,经手人)
4.入货表(商品名,商品编号,数量,总价,经手人)
5.查询(商品名,商品编号,数量,单价)
根据上面的关系我们需要的数据基本上就上面所列出的数据。
2 系统总体设计
1)库存商品管理
查看数据库中商品的名称、编号、单价等信息。
2)商品出库、入库管理
入库、出库单纪录本次入库、出库的货物名称、数量,入库、出库的时间、商品单价以及总价,入库、出库的经手人等。
3)商品的查询
输入商品的编号或者商品的名称查询信息
4)用户管理
用户可以修改登录密码
2.1系统总体结构设计
2.2.1 E-R图
2.2.2 关系模式
1.员工(ID ,姓名,密码,权限)
2.商品(商品名,商品编号,所属类,单价)
3.出货表(商品名,商品编号,数量,总价,经手人)
4.入货表(商品名,商品编号,数量,总价,经手人)
5.查询(商品名,商品编号,数量,单价)
2.2.3 数据表
“员工信息表”“商品信息表”“出货单”“进货单”的主键分别是:ID、商品编号、商品编号、商品编号。
员工信息表
商品信息表
出货单
进货单
3.系统实施
工作界面PB9.0,以下是我制作过程和运行中的一些截图:
首先建立PB与SQL的数据链接:如果链接不成功,返回对以话框“数据库连接错误,经检查后再试!”
然后点Preview选项会弹出如下窗口:
一、 工作界面截图:
分别建有:workspace、application、windows、dw_、da_等。
工作时检测连接数据库是否正常的程序代码:
// Profile q
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=仓库;UID=;PWD='"
connect;
open(w_enter)
二、 运行结果的截图:
这个是我运行后的第一个用户界面,在界面中输入管理员ID和密码。我的管理员ID 和密码分别为 1,123.点击确定进入menu下一界面。
若ID和密码分别输入1,1234,则跳出以下界面:
确定按钮所对应的代码如下:
//定义两个变量
string password,userid
password=sle_2.text
//检索用户名和密码记录
SELECT "员工信息表". "ID",
"员工信息表"."密码"
INTO :userid,
:password
FROM "员工信息表"
WHERE "员工信息表"."ID" =:sle_1.text and "员工信息表"."密码" =:sle_2.text;
//判断用户输入的用户名是否正确
if sqlca.sqlcode<>0 then
messagebox("错误!","ID或密码错误,请重新输入!",exclamation!,ok!,2)
else
messagebox("通过验证!","ID和密码正确,欢迎您使用本系统!",Information!,ok!,2)
open(w_main)
close(w_enter)
end if
取消按钮所对应的代码如下:
close(parent)
//关闭登录窗口
三、 menu界面的截图:
在本界面中我们通过点击菜单栏上的不同管理按钮来实现管理和操作的功能。
进货—进货单
出货—出货单
库存—蔬菜类
—水产类
—肉类
系统维护—修改密码
查询
四、 进货的截图如下:
在本界面中,操作员可以输入进货信息
五、 进货的截图如下:
在本界面中,操作员可以输入出货信息
六、本界面是实现用户更改自己的密码的界面
用户在登陆后根据上面的提示可以更改自己的密码。
程序代码如下:
string oldid
string oldp
string newp1
string newp2
oldid=trim(sle_1.text)
oldp=trim(sle_2.text)
newp1=trim(sle_3.text)
newp2=trim(sle_4.text)
if len(oldp)=0 or isnull(oldp) then
oldp=space(10)
end if
if len(newp1)=0 or isnull(newp1) then
newp1=space(10)
end if
if len(newp2)=0 or isnull(newp2) then
newp2=space(10)
end if
select "operator"."password"
into :oldp
from "operator"
where "operator"."password"=:oldp;
if sqlca.sqlcode<>0 then
messagebox("提示","原密码不正确!")
sle_2.text=""
sle_2.setfocus()
return
end if
if newp1<>newp2 then
messagebox("提示","两次新密码输入不同!")
sle_4.text=""
sle_4.setfocus()
return
end if
Update "operator"
set "password"=:newp1
where "operator"."operator_id"=:oldid;
if sqlca.sqlcode<>0 then
rollback;
messagebox("提示","密码更正错误! 请重设!")
return
end if
gs_password=newp1
commit;
messagebox("提示","密码修改成功!")
七、本操作可以看仓库里的商品并可对其进行插入和删除
八、从仓库查询所需要的商品
4 系统评价
系统的功能基本上已经实现,但是还是不够完善。但是在使用的时候还是能给用户带来一定的方便的。仓库的进货和出货在本系统中能直观的以表格形式反映出来,便于操作员的使用和决策者的管理。
4.1 系统特色
本系统要求用户进行验证之后才能进入相应的界面。有利于保护数据库的安全,不被非法登陆使用。对于仓库内货物的进出管理要求严格,即进出货时必须填写相应的进出货单据。便于企业管理查看账目,保障了企业的稳定运行。通过本系统可以方便地实现仓库管理中的货物登记、出库入库等操作,使仓库管理井井有条。在查看数据库时可以方便的删除数据库中冗余的信息和添加新的信息。
4.2 系统不足及改进
这个系统基本上实现了一些简单的对系统所涉及表的更新、增加和删除的功能。也实现对用户登陆的安全上有了一定的限制,只有在正确输入ID和密码的时候才能进入系统。远没有达到大型公司的仓储物资管理的要求,所创建的数据库框架比较简单,各表之间的联系也过于简单,没有添加外键相互约束,用POWER BUILDER做出来的系统过于简单、单调,需要进一步深入的调整优化,将各表之间的关系紧密联系起来,相互制约,保证数据库中数据的添加、删除、更新,安全有序。操作窗口还需要进一步的进行美化,使用户在使用中更赏心悦目。
5 课程设计心得
这次课程设计的主要目的是掌握数据库应用系统分析设计的基本方法,基本掌握PowerBuilder,进一步提高分析解决问题的综合能力。通过这次课程设计,我基本掌握了以上要求。但只有两周的课程设计时间,时间比较仓促,所以开发的系统不是很完善,有一些功能未实现,但是仓库管理的基本功能均已实现。以前对数据库的很多知识认识都不深刻,做过这次课程设计之后,我对数据库的知识有了一个比较系统的了解;比如:对表内一些字段的约束,关系等的运用已经比较熟练。这个课程设计使我巩固了数据库的知识。
对于PowerBuilder也有了一定的了解,由于用的不多,所以运用的不是很熟练。刚开始的时候,对于PowerBuilder的语法,用法等一系列知识都不熟悉。当我基本完成此系统开发的时候,我发现其实也没有那么难,在未做之前我还害怕做不出来。经过对这个系统的开发,在开发过程中遇到但也解决了很多问题,所以说我们不能惧怕有困难而不去接触认识它,我们要知难而上,只有这样我们才能成长,才能有所发展。
这认为最难的一部分是用户查看数据库时通过插入删除按钮对数据库的更改,因为我们在文本框中输入的数字是被默认为字符型的,我在其中使用了integer(string)这个函数把字符型的进行了转换,但是在使用的过程中并不能像我所想象的那样有用。因为时间有限,所以这个问题还没有完全的解决。
通过这次数据库课程设计加深我对数据库基础理论和基本知识的理解,掌握数据库应用系统设计开发的基本方法,达到进一步使我综合运用所学知识和增强实际动手能力的目的。
我会继续学习数据库的知识,学习PowerBuilder的知识,只有通过不断的学习充实自己,才能让自己有所得。只有了知识的积淀,才能为自己的发展铺平道路!
可以参考一下啊,最终还是要自己做的吧。。仅供参考。
㈣ 物资管理系统数据库设计操作和步骤
物资管理系统数据库设计
椒
伙轻举妄动伙,渥
㈤ 商品管理系统数据库设计
一个完整的销售管理系统
我给你
㈥ 设计个“库存管理系统”数据库系统。在该系统中研究了“供货单位”,“库存物资”和“领用部门”三个实体
一般的公司access就足够了。
如果是多个部门或分公司使用,建设用ACCESS加ASP或PHP制作一个管理网站就行。