物資管理系統資料庫設計
㈠ 怎樣用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製作一個管理網站就行。