数据库课设报告-仓库管理系统_第1页
数据库课设报告-仓库管理系统_第2页
数据库课设报告-仓库管理系统_第3页
数据库课设报告-仓库管理系统_第4页
数据库课设报告-仓库管理系统_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PAGEPAGE34仓库管理系统一、课程设计的内容1、研究与学习仓库管理系统的技术、发展和意义;2、学习使用仓库管理系统,掌握应用开发工具VisualStudio、中间层数据库访问技术ADO以及关系数据库MSSQLServer2000等实现技术的基本原理,安装配置系统开发环境;3、设计和实现仓库进销存管理系统;4、撰写课程设计报告。二、课程设计的要求1、本系统要能够完成仓库管理的一般工作,例如商品的出入库、余量统计等等。2、实现数据库的增、删、改、查功能。3、实现用户的权限管理.4、掌握处于中间层的数据库访问技术.三、课程设计应完成的工作1、开发一个基于B/S架构的仓库管理系统,功能包括:管理员设置、仓管员登陆、仓管员设置、各仓库商品出入库、库存统计等等。2、通过规划设计本数据库系统,掌握数据库规划设计的基本技术,熟悉数据库的设计的基本方法和步骤,明白数据库设计各阶段的任务,加深对数据库系统概念和特点的理解。3、独立撰写课程设计报告,对整个系统及其内部的各个功能模块的构想、设计思路、实现方法和过程,做出了详细的说明和介绍。四、主要设备与软件:1.计算机及操作系统:PC机,WindowsXP2.数据库管理系统:VisualStudio2005+SQLsever2000五、相关技术介绍1.应用开发工具VisualStudioVisualStudio(VS)是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。VS拥有图形用户界面(GUI)和快速应用程序开发(RAD)系统,可以轻易的使用DAO、RDO、ADO连接数据库,或者轻松的创建ActiveX控件。程序员可以轻松的使用VS提供的组件快速建立一个应用程序。它非常适合用来开发拥有友好界面的程序(比如针对终端的数据),但是不适合开发其它程序(比如联合计算程序)。2.关系数据库SQLServer2000SQLServer是一个关系数据库管理系统,而SQLServer2000是Microsoft公司推出的SQLServer数据库管理系统,它具有以下特点:(1)高性能设计,可充分利用WindowsNT的优势。(2)系统管理先进,支持Windows图形化管理工具,支持本地和远程的系统管理和配置.(3)强壮的事务处理功能,采用各种方法保证数据的完整性.(4)支持对称多处理器结构、存储过程、ODBC,并具有自主的SQL语言。SQLServer以其内置的数据复制功能、强大的管理工具、与Internet的紧密集成和开放的系统结构为广大的用户、开发人员和系统集成商提供了一个出众的数据库平台.3。ADO。Net数据库访问技术HYPERLINK”/%E5%BE%AE%E8%BD%AF%E5%85%AC%E5%8F%B8”\o”微软公司”微软公司的ADO(ActiveXDataObjects)是一个用于存取数据源的COM”COM组件。它提供了编程语言和统一数据访问方式\o”OLEDB”OLEDB的一个中间层。允许开发人员编写访问数据的代码而不用关心数据库是如何实现的,而只用关心到数据库的连接。访问HYPERLINK”/%E6%95%B0%E6%8D%AE%E5%BA%93”\o”数据库”数据库的时候,关于HYPERLINK”/SQL”\o"SQL”SQL的知识不是必要的,但是特定数据库支持的SQL命令仍可以通过ADO.Net中的命令对象来执行.本系统采用目前比较流行的ADO.Net,并将每个数据库表的字段和操作封装到类中,从而成功地将面向对象的程序设计思想应用到数据库应用程序设计中.六、概述仓库系统能够有效地管理商品资源,控制商品出入库以及其各类统计,减少人工手工记录的麻烦,极大地帮助了减轻了仓库管理员的工作量,使得仓库管理变得智能化。这个系统利用VisualStudio作为开发工具,MSSQLServer2000作为数据库管理系统,利用ADO。Net数据库访问技术,建立一个B/S架构的关系数据库系统。通过系统的开发,让读者了解有关仓库管理系统的需求分析、设计和实现的完整过程,并且有利于掌握有关SQLServer2000数据库的技术,积累开发数据库应用系统的经验。七、系统需求分析仓库管理系统的用户是负责仓库商品出入库以及统计的管理员,该系统能够方便管理员对商品进行有效的管理,为仓库物力节省了人力物力上等资源。系统包括了管理员登陆设置、商品信息入库、商品出库、商品退货、商品销售统计和商品库存统计等主要功能。管理员登陆设置:开设删除仓库和仓库管理员商品信息入库:商品信息添加至对应仓库数据库商品出库:出库商品信息添加至对应仓库数据库商品退货:退货商品信息添加至对应仓库数据库商品销售统计:统计数据库内商品销售的信息商品库存统计:统计数据库内商品剩余的信息(1)仓库管理系统第一层数据流图仓库管理系统根据登陆用户的不同,将自动跳转到相应面页。系统管理员系统管理员实现对仓库的开设和相应级别管理员的设置。仓管员包括总仓管和一般仓库管理员.总仓管可以实现对所有仓库信息的统计和各仓库间商品的调拨。一般仓库管理员只能对自己所管理的仓库的商品信息的操作,事实上对其他仓库的信息其无法得知。登陆登陆管理员开设仓库失败管理员开设仓库失败设置管理员设置管理员总仓管总仓管商品调拨查询操作商品调拨查询操作仓管员仓管员商品出入库查询统计操作商品出入库查询统计操作图书借阅管理系统第一层数据流图第一层数据流图通过反映了整个系统不同数据的流向,揭示系统的组成结构以及各组成部分之间的关系,这种关系主要体现在对数据的操作和处理上。(2)出入库处理在商品出入库操作中,首先填写或选择所需出入库的信息,进行检查,如果输入信息正确则进入下一步,如果无效则给操作者相应的提示,页面自动跳转。具体操作的数据流图如下图所示:仓管员入库出库商品信息仓库操作失败仓管员入库出库商品信息仓库操作失败商品信息商品信息查询查询出入库过程出入库过程写入写入仓库记录显示记录仓库记录显示记录出入库等操作的数据流图(3)商品调拨处理在商品调拨操作中,首先根据所需调拨商品所属仓库进行有效性判断,如果有效则进入下一步,如果是无效则给操作者相应的提示,页面自动跳转。在商品调拨前后,商品调拨记录表以及调拨仓库的数据表中均插入数据操作记录,以便查询统计。调拨信息记录操作的数据流图如下图所示:调拨信息记录删除商品信息仓库二仓库一仓库二查询信息仓库一入库出库商品信息删除商品信息仓库二仓库一仓库二查询信息仓库一入库出库商品信息写入写入还书操作的数据流图(5)在需求分析的最后,形成了以下与数据流图相配对的数据字典如下:数据项:serId含义说明:惟一标识一个用户别名:用户ID长度:15取值范围:字符型数据结构:商品含义说明:定义了一种商品的信息结构,也即是供操作的信息结构。组成:商品Id,商品名,商品类型,商品数量,供应商等数据存储:用户列表说明:表示各类仓库管理员的信息数据分类:系统管理员,总仓管,仓管员组成:用户Id,用户名,用户级别,所管理仓库数据存储:仓库列表说明:记录每一个仓库的情况流入数据流:仓库信息流出数据流:仓库信息存取方式:随机存取处理过程:仓库表说明:对应每个仓库的数据表输入:各仓库商品信息输出:商品出库信息处理:首先判断商品信息的可用性,然后执行所要求操作(6)安全性与完整性要求:安全性要求:本系统中,首先给数据库添加Window用户,设置一位系统管理员;通过管理员开设仓库和设置仓库管理员,管理员登陆后根据自身身份,跳转至相应页面,实现了访问数据库的权限。完整性要求:在数据库中对数据库所需要的表设置完整性约束,为各表设置表的主键,规定各表之间的关系,另外还需要设置一组外键。其中,各表主键分别如下:用户信息表UserList——主键userName仓库信息表StoreList—-主键storeName调拨信息表ManagerTable--主键pId(7)触发器建立仓库表为了实现系统的自动化,和有效节省存储空间以及消除数据表的冗余,未设置的仓库一律不配数据库表,而只有当仓库开设成功后才建立相应的仓库表.此动作在系统中是通过触发器来实现的。触发器中建立仓库表,一旦该仓库给删除,后台代码同样有将该仓库表删除的操作。建立的触发器如下:CREATETRIGGERcreatnewONdbo.StoreListAFTERINSERTASdeclare@storeNamechar(15)select@storeName=[storeName]frominsertedexec(’createtable'+@storeName+'(pIdintIDENTITY(1,1)NOTFORREPLICATIONNOTNULL,pNamevarchar(15),pKindvarchar(15),pCountint,pMinint,pUnitvarchar(4),pInfloat,pOutfloat,pBackfloat,pTimedatetimenull,pServevarchar(30),pPersonvarchar(15),pByervarchar(30),pStatechar(8),pRemarkvarchar(150))’)而在后台代码删除数据表的操作是通过以下代码实现的:SqlConnectionconn=newSqlConnection(strConnect);conn。Open();stringdeleteid=StoreGrid。DataKeys[e。RowIndex]。Value。ToString();stringdatesql=”select*from”+deleteid;SqlCommandobjCmd1=newSqlCommand(datesql,conn);SqlDataReadermyReader=objCmd1.ExecuteReader();if(myReader。Read()){Response。Write("〈script〉alert('该仓库中还保存有货物,请先通过总仓管将货物调入其他仓库!’)</script>”);return;}myReader.Close();stringdropTable="droptable”+deleteid;SqlCommandobjCmd2=newSqlCommand(dropTable,conn);objCmd2。ExecuteNonQuery();stringstrsql="deletefromStoreListwherestoreName=’"+deleteid+”'”;SqlCommandobjCmd3=newSqlCommand(strsql,conn);objCmd3。ExecuteNonQuery();conn。Close();八、逻辑结构设计(1)系统结构图仓库管理系统的系统结构图如下所示:开设仓库设置仓管员开设仓库设置仓管员仓管员商品出库商品入库系统管理员操作系统登陆系统用户管理库存统计商品调拨调拨查询库存查询仓库管理系统(3)安全性和完整性设计根据需求分析的说明,安全性设计是通过设置Windows用户以及SQL角色、对象等的权限来实现的,具体如下:①新建数据库登陆用户:②建立好用户后,给用户设置角色已经分配权限,因为超级管理员Administrator与普通管理员rekku设计情况相类似,所以下面只引用Administrator作为例子.设置完用户属性后,还可以设置对象属性,给用户分配访问对象权限(以表BookInfo为例):九、概念结构设计E—R图为实体—联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。下面用E—R图来表示本仓库管理系统的概念结构设计。①用户和仓库的E-R图用户ID用户ID仓库名仓库名仓库仓库面积密码11管理用户仓库仓库面积密码11管理用户用户名户名用户名户名仓库地址②仓库和仓库列表的分E—R图价格商品名价格商品名仓库名商品ID仓库名商品IDnn商品供应商仓库面积仓库列表1对应仓库商品供应商仓库面积仓库列表1对应仓库仓库地址商品类型仓管员仓库地址商品类型仓管员数量数量十、数据库物理设计(1)数据库存放位置:在某些情况下,数据库管理员(dba)经常希望某个数据库会位于服务器数据文件夹之外。这些情况通常是由于业务需要,如提高性能或扩展存储。由于本数据库是在一台PC机建立的,基于扩展存储的考虑,本数据库的数据库文件与日志文件存放在不同分区当中。如下所示:数据库文件:日志文件:十一、数据库实施(1)本图书借阅管理系统中,创建的数据库有如下数据库对象:表StoreListCREATETABLE[dbo]。[StoreList]( [storeName][char](15)COLLATEChinese_PRC_CI_ASNOTNULL, [storeArea][float]NULL, [storeAddress][varchar](50)COLLATEChinese_PRC_CI_ASNULL, [storeManager][varchar](20)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO表ManagerTableCREATETABLE[dbo].[ManagerTable]( [pId][int]IDENTITY(1,1)NOTFORREPLICATIONNOTNULL, [pName][varchar](15)COLLATEChinese_PRC_CI_ASNULL, [pKind][varchar](15)COLLATEChinese_PRC_CI_ASNULL, [pCount][int]NULL, [pTime][datetime]NULL, [pPerson][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [pFrom][varchar](15)COLLATEChinese_PRC_CI_ASNULL, [pTo][varchar](15)COLLATEChinese_PRC_CI_ASNULL, [pRemark][varchar](150)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO表UserListCREATETABLE[dbo]。[UserList]( [userId][varchar](15)COLLATEChinese_PRC_CI_ASNOTNULL, [userPwd][char](16)COLLATEChinese_PRC_CI_ASNULL, [userName][char](10)COLLATEChinese_PRC_CI_ASNULL, [userFlag][int]NULL, [userLevel][varchar](10)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO仓库表示例—触发器建立CREATETABLE[dbo]。[仓库三]( [pId][int]IDENTITY(1,1)NOTFORREPLICATIONNOTNULL, [pName][varchar](15)COLLATEChinese_PRC_CI_ASNULL, [pKind][varchar](15)COLLATEChinese_PRC_CI_ASNULL, [pCount][int]NULL, [pMin][int]NULL, [pUnit][varchar](4)COLLATEChinese_PRC_CI_ASNULL, [pIn][float]NULL, [pOut][float]NULL, [pBack][float]NULL, [pTime][datetime]NULL, [pServe][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [pPerson][varchar](15)COLLATEChinese_PRC_CI_ASNULL, [pByer][varchar](30)COLLATEChinese_PRC_CI_ASNULL, [pState][char](8)COLLATEChinese_PRC_CI_ASNULL, [pRemark][varchar](150)COLLATEChinese_PRC_CI_ASNULL)ON[PRIMARY]GO(2)数据库备份和恢复方案:(待完)由于仓库管理过程中,商品流动量大,添加新商品的周期也不长,这些原因使得商品数量庞大,对流快速,这就要求数据库备份时,采用完全恢复方案。完全恢复对所有的事务都进行了日志记录,当发生故障时,这种方案能够将数据库中每个提交的事务都还原到故障发生时的状态。在这个完全恢复备份方案,具体设计为每个星期进行两次完全的数据库备份,除去这两天以外,在一个星期的其他几天的每个晚上都要进行差异备份。此外,每个白天进行三次事务日志备份。备份方案示意图:星期五差异备份+事务日志备份星期日完全备份星期五差异备份+事务日志备份星期日完全备份星期一差异备份+事务日志备份星期三完全备份星期四差异备份+事务日志备份星期二差异备份+事务日志备份星期六差异备份+事务日志备份(3)系统首页①用户登陆界面,在用户输入账户和密码的时候,将判断正确性,代码如下:#regionstringpwds=userID。Text.ToString();//MD5加密存储byte[]pass=Encoding。UTF8.GetBytes(pwds);MD5md5=newMD5CryptoServiceProvider();stringstrPassword=Encoding。UTF8。GetString(md5。ComputeHash(pass));SqlConnectionconn=newSqlConnection(strConnect);conn。Open();stringstrsql=”select*fromUserListwhereuserId=’"+userID。Text.Trim()+”’anduserPwd=’”+strPassword+"’”;stringstosql="selectstoreNamefromstoreListwherestoreManager=’”+userID。Text.Trim()+"'";SqlCommandobjCmd=newSqlCommand(strsql,conn);SqlCommandobjCmd2=newSqlCommand(stosql,conn);//objCmd。Connection。Close();SqlDataReaderdr2=objCmd2.ExecuteReader();stringlogStoreName=””;if(dr2.Read()){logStoreName=dr2[0]。ToString();}objCmd2。Connection.Close();objCmd。Connection。Open();SqlDataReaderdr=objCmd.ExecuteReader();#endregionif(dr。Read()){//根据用户级别不同,自动导航到相应页面stringlogUserId=dr[0].ToString();Session[”userFlag”]=dr[”userFlag”];if(Session["userFlag"].ToString()=="0"){Response.Redirect("AdminsetShow。aspx?user=”+logUserId+”&store=”+logStoreName);}if(Session[”userFlag"].ToString()==”1"){Response。Redirect(”MainManager。aspx?user=”+logUserId);}if(Session[”userFlag”]。ToString()=="2"){Response。Redirect("SubManager。aspx?user=”+logUserId+”&store="+logStoreName);}}else{//Response。Redirect("Adminset。aspx”);Response。Write(”<script>alert(’用户名或密码错误!')〈/script〉”);}conn。Close();}新增仓库:设置管理员:退出系统将返回登陆界面:②管理员进入后,可以进行仓库开设、仓管员设置等;当前页面显示已经添加有若干信息:③仓管员进入后界面如下:点击左边导航栏,可以显示不同的信息操作界面:如下://页面传值logUserId=Request。QueryString[”user"];logStoreName=Request。QueryString["store”];#region相应页面加载if(Session["flag"]=="InShow”){productInfoBind();}if(Session[”flag”]=="OutShow"){productOutBind();}if(Session[”flag”]==”BackShow”){productBackplBind();}if(Session[”flag”]==”SearchShow”){searchpKind。Items。Clear();searchpByer.Items。Clear();searchpSever。Items。Clear();SellplBind();}if(Session["flag”]==”RemainShow”){RemainplBind();}#endregion}privatevoidproductOutBind()//商品出库页面{productInfo.Visible=false;productOut。Visible=true;productBackpl.Visible=false;Sellpl。Visible=false;Remainpl。Visible=false;SqlConnectionconn=newSqlConnection(strConnect);conn.Open();SqlCommandsc=newSqlCommand(”selectdistinctpName,pKind,pUnit,pServefrom"+logStoreName,conn);SqlDataReadermyReader=sc。ExecuteReader();while(myReader。Read()){pName1。Items。Add(myReader[0].ToString());pKind1.Items。Add(myReader[1].ToString());pUnit1。Items.Add(myReader[2]。ToString());pSever1。Items。Add(myReader[3].ToString());}conn。Close();}privatevoidproductBackplBind()//商品退货页面{productInfo。Visible=false;productOut。Visible=false;productBackpl。Visible=true;Sellpl。Visible=false;Remainpl。Visible=false;//信息加载SqlConnectionconn=newSqlConnection(strConnect);conn。Open();SqlCommandsc=newSqlCommand(”selectdistinctpName,pKind,pUnit,pByer,pServefrom"+logStoreName,conn);SqlDataReadermyReader=sc.ExecuteReader();while(myReader。Read()){pName2.Items。Add(myReader[0]。ToString());pKind2。Items.Add(myReader[1]。ToString());pUnit2.Items。Add(myReader[2].ToString());pByer2.Items.Add(myReader[3].ToString());pSever2。Items.Add(myReader[4]。ToString());}conn。Close();}privatevoidsearchBind()//查找数据{SqlConnectionconn=newSqlConnection(strConnect);stringziduan=”pNameas商品名,pKindas商品类型,pCountas库存余量,pInas进货价,pOutas出库价,pByeras买家,pServeas供应商,pTimeas时间";SqlCommandacd=newSqlCommand(”select"+ziduan+”from”+logStoreName+”wherepState='出库’”+sqlWhere,conn);acd。Connection。Open();SqlDataReadersda=acd。ExecuteReader();this。searchGrid。DataSource=sda;this。searchGrid.DataBind();acd.Connection。Close();searchCount。Text=searchGrid.Rows.Count。ToString();}privatevoidremainData()//商品库存数据{SqlConnectionconn=newSqlConnection(strConnect);stringziduan=”pNameas商品名,pKindas商品类型,pCountas库存余量,pServeas供应商”;SqlCommandacd=newSqlCommand("select”+ziduan+”from”+logStoreName,conn);acd.Connection。Open();SqlDataReadersda=acd。ExecuteReader();this.remainGrid。DataSource=sda;this。remainGrid。DataBind();acd。Connection。Close();remainCount。Text=remainGrid。Rows.Count.ToString();}protectedvoidbtnPutIn_Click(objectsender,EventArgse)//新商品入库{SqlConnectionconn=newSqlConnection(strConnect);SqlCommandsd=newSqlCommand(”insertinto"+logStoreName+”(pName,pKind,pCount,pMin,pUnit,pIn,pServe,pRemark,pState,pPerson,pTime)"+”Values(@pName,@pKind,@pCount,@pMin,@pUnit,@pIn,@pServe,@pRemark,@pState,@pPerson,@pTime)”,conn);sd。Parameters。Add(newSqlParameter(”@pName",pName。Text));sd。Parameters。Add(newSqlParameter("@pKind”,pKind.Text.Trim()));sd。Parameters。Add(newSqlParameter(”@pCount",int。Parse(pCount。Text。Trim())));//入库数量sd。Parameters。Add(newSqlParameter(”@pMin",int.Parse(pMin。Text。Trim())));sd。Parameters。Add(newSqlParameter("@pUnit",pUnit。Text));sd。Parameters.Add(newSqlParameter(”@pIn”,float。Parse(pIn.Text。Trim())));sd。Parameters.Add(newSqlParameter(”@pServe”,pSever。Text));sd。Parameters。Add(newSqlParameter(”@pRemark”,pRemark。Text));sd。Parameters.Add(newSqlParameter(”@pState”,”入库”));sd。Parameters。Add(newSqlParameter(”@pPerson",logUserId));sd。Parameters。Add(newSqlParameter("@pTime”,DateTime。Now));sd。Connection。Open();try{inta=Convert.ToInt32(sd。ExecuteNonQuery());if(a>0){Response.Write(”〈script>alert(’操作成功!’)</script〉”);Response。Redirect(”SubManager。aspx?user=”+logUserId+”&store="+logStoreName);}}catch(SqlExceptionex){Response.Write(ex。ToString());//Response。Write("〈script>alert('添加失败!’)〈/script>”);sd。Connection。Close();return;}finally{if(sd。Connection。State==ConnectionState。Open){sd。Connection.Close();}}}}和仓管员登陆后类似,总仓管登陆后加载商品调拨页面:同个仓库间商品不能调拨:管理员设置添加页面代码:privatevoidstoreBind(){SqlConnectionconn=newSqlConnection(strConnect);conn.Open();SqlCommandsc=newSqlCommand(”selectstoreNamefromStoreListwherestoreManagerisnull”,conn);SqlDataReadermyReader=sc。ExecuteReader();while(myReader。Read()){//BelongStore。Items。Add(newListItem(myReader[”storeName"]。ToString()));BelongStore。Items.Add(myReader[0]。ToString());}conn.Close();if(BelongStore.Text。Trim()=="”){Response.Write(”〈script>alert(’当前所有仓库都已经设置相应的管理员!只能设置总仓管!')〈/script>");}}protectedvoidStoreSet_Click(objectsender,EventArgse){storeInfo。Visible=true;userInfo。Visible=false;}protectedvoidUserSet_Click(objectsender,EventArgse){storeInfo。Visible=false;userInfo.Visible=true;}protectedvoidExit_Click(objectsender,EventArgse){Response。Redirect("Default.aspx”);}protectedvoidbtnOK_Click(objectsender,EventArgse)//AddUser{#regionPageFlagstringpwds=userPwd。Text。ToString();intflag=—1;if(userLevel。Text=="仓管员”){flag=2;}elseif(userLevel.Text=="总仓管”){flag=1;}elseif(userLevel。Text==”管理员"){flag=0;}else{flag=3;}#endregion//采用MD5加密byte[]pass=Encoding。UTF8。GetBytes(pwds);MD5md5=newMD5CryptoServiceProvider();stringstrPassword=Encoding。UTF8.GetString(md5。ComputeHash(pass));SqlConnectionconn=newSqlConnection(strConnect);SqlCommandcm=newSqlCommand(”AddUser",conn);if(!string。IsNullOrEmpty(BelongStore。Text)){///////将管理员添加到仓库表的相对应仓库stringsql=”updateStoreListsetstoreManager=’”+userId。Text。Trim()+”'wherestoreName='”+BelongStore。Text。Trim()+”'";SqlCommandcn=newSqlCommand(sql,conn);cn。Connection.Open();intb=Convert。ToInt32(cn.ExecuteNonQuery());if(b〉0){}else{Response.Write("〈script〉alert(’添加失败!’)〈/script〉”);return;}cn。Connection。Close();}if(Page.IsValid){cm。CommandType=CommandType.StoredProcedure;cm。Parameters。Add(newSqlParameter("@userId”,SqlDbType。Char,15));cm。Parameters.Add(newSqlParameter(”@userPwd",SqlDbType.Char,16));cm.Parameters。Add(newSqlParameter(”@userName”,SqlDbType。Char,10));cm。Parameters。Add(newSqlParameter(”@userFlag",SqlDbType。Int,4));cm.Parameters.Add(newSqlParameter("@userLevel",SqlDbType。VarChar,10));cm.Parameters[”@userId”]。Value=userId。Text.ToString();cm.Parameters[”@userPwd”]。Value=strPassword;cm。Parameters["@userName”].Value=userName。Text。ToString();cm.Parameters[”@userFlag"]。Value=flag.ToString();cm。Parameters[”@userLevel"]。Value=userLevel。Text.ToCharArray();cm.Connection.Open();}try{inta=Convert.ToInt32(cm。ExecuteNonQuery());if(a>0){//Response.Write("<script>alert('添加成功!’)〈/script〉”);Response。Redirect(”AdminsetShow。aspx");}else{Response.Write(”<script〉alert('添加失败!’)〈/script〉”);}}catch(SqlException){Response。Write(”〈script〉alert(’添加失败!该管理员已经存在!’)〈/script>”);cm.Connection.Close();}finally{if(cm.Connection。State==ConnectionState.Open){cm。Connection.Close();}}}protectedvoidaddbtn_Click(objectsender,EventArgse)//AddStore{if(Page.IsValid)//验证输入面积是否为数值{checkArea。Visible=true;return;}SqlConnectionconn=newSqlConnection(strConnect);SqlCommandsd=newSqlCommand(”insertintoStoreList(storeName,storeArea,storeAddress)Values(@storeName,@storeArea,@storeAddress)",conn);sd。Parameters.Add(newSqlParameter("@storeName”,storeName。Text));sd。Parameters。Add(newSqlParameter(”@storeArea",float.Parse(storeArea.Text.Trim())));sd.Parameters。Add(newSqlParameter(”@storeAddress”,storeAddress。Text));sd。Connection.Open();try{inta=Convert.ToInt32(sd。ExecuteNonQuery());if(a〉0){//Response。Write("〈script〉alert(’添加成功!’)〈/script〉");Response。Redirect("AdminsetShow.aspx");}}catch(SqlExceptionex){Response.Write(ex。ToString());//Response。Write(”〈script〉alert(’添加失败!')〈/script〉”);sd。Connection.Close();}finally{if(sd。Connection。State==ConnectionState.Open){sd.Connection。Close();}}}protectedvoidBelongStore_SelectedIndexChanged(objectsender,EventArgse){SqlConnectionconn=newSqlConnection(strConnect);conn.Open();SqlCommandsc=newSqlCommand(”selectuserId,userName,userLevelfromUserListwhereuserNamein(selectstoreManagerfromStoreListwherestoreName=’”+BelongStore.Text。Trim()+”')”,conn);SqlDataReadermyReader=sc。ExecuteReader();while(myReader.Read()){userId。Text=myReader[0].ToString();userName。Text=myReader[1]。ToString();userLevel。Text=myReader[2]。ToString();}}}每个仓库只分配一名仓管员,设置管理员时,如果所有的仓库已经包含管理员,就只能添加总仓管员;否则在管理员设置页面将自动列出所剩余未分配管理员的仓库.//仓库以及仓管员显示页面代码:publicpartialclassAdminset:System。Web。UI。Page{//privateboolflag=false;publicstringstrConnect=ConfigurationSettings。AppSettings[”connStr”];privatestringlogUserId="";privatestringlogStoreName=””;protectedvoidPage_Load(objectsender,EventArgse){if(!Page。IsPostBack){band();band2();}logUserId=Request。QueryString[”user"];logStoreName=Request。QueryString[”store”];}privatevoidband(){SqlConnectioncon=newSqlConnection(strConnect);con.Open();SqlDataAdaptersda=newSqlDataAdapter(”selectstoreName,storeArea,storeAddress,storeManagerfromStoreList”,con);DataSetds=newDataSet();sda。Fill(ds);this。StoreGrid.DataSource=ds;this.StoreGrid。DataBind();con.Close();}privatevoidband2(){SqlConnectioncon=newSqlConnection(strConnect);con。Open();SqlDataAdaptersda=newSqlDataAdapter(”selectuserId,userName,userLevelfromUserList”,con);DataSetds=newDataSet();sda.Fill(ds);this.UserGrid。DataSource=ds;this。UserGrid。DataBind();con.Close();}protectedvoidStoreSet_Click(objectsender,EventArgse){Session[”flag”]="storeShow”;Server。Transfer(”AdminsetAdd。aspx?user=”+logUserId+”&store="+logStoreName);}protectedvoidUserSet_Click(objectsender,EventArgse){Session[”flag”]=”userShow”;Server.Transfer("AdminsetAdd。aspx?user=”+logUserId+"&store="+logStoreName);}protectedvoidExit_Click(objectsender,EventArgse){Response。Redirect(”Default.aspx");}///<summary〉///用户信息///〈/summary〉///〈paramname=”sender"></param〉///〈paramname=”e">〈/param〉protectedvoidUserGrid_PageIndexChanging(objectsender,GridViewPageEventArgse){UserGrid。PageIndex=e。NewPageIndex;band2();}protectedvoidUserGrid_RowDeleting(objectsender,GridViewDeleteEventArgse){SqlConnectionconn=newSqlConnection(strConnect);conn.Open();stringdeleteid=UserGrid.DataKeys[e。RowIndex].Value。ToString();stringstrsql=”deletefromUserListwhereuserId='”+deleteid+”’”;SqlCommandobjCmd=newSqlCommand(strsql,conn);objCmd。ExecuteNonQuery();conn。Close();band2();}protectedvoidUserGrid_RowEditing(objectsender,GridViewEditEventArgse){UserGrid.EditIndex=e.NewEditIndex;band2();}protectedvoidUserGrid_RowUpdating(objectsender,GridViewUpdateEventArgse){SqlConnectionconn=newSqlConnection(strConnect);conn。Open();stringupdateId=UserGrid。DataKeys[e。RowIndex]。Value。ToString();stringName=((TextBox)UserGrid。Rows[e。RowIndex]。FindControl("userName”))。Text;stringLevel=((TextBox)UserGrid.Rows[e。RowIndex]。FindControl(”userLevel”)).Text;stringstrsql="updateUserListsetuserName='"+Name+”’,userLevel='”+Level+”’whereuserId=’"+updateId+”'”;SqlCommandobjCmd=newSqlCommand(strsql,conn);objCmd.ExecuteNonQuery();conn。Close();UserGrid。EditIndex=-1;band2();}protectedvoidUserGrid_RowCancelingEdit(objectsender,GridViewCancelEditEventArgse)//canceltheedit{UserGrid。EditIndex=-1;band2();}///<summary〉///仓库信息///〈/summary〉///〈paramname=”sender"〉</param>///〈paramname="e”〉〈/param>protectedvoidStoreGrid_PageIndexChanging(objectsender,GridViewPageEventArgse){StoreGrid.PageIndex=e。NewPageIndex;band();}protectedvoidStoreGrid_RowEditing(objectsender,GridViewEditEventArgse){StoreGrid。EditIndex=e。NewEditIndex;band();}protectedvoidStoreGrid_RowUpdating(objectsender,GridViewUpdateEventArgse){SqlConnectionconn=newSqlConnection(strConnect);conn。Open();stringupdateId=StoreGrid。DataKeys[e.RowIndex].Value。ToString();stringName=((TextBox)StoreGrid.Rows[e。RowIndex].FindControl("storeName”))。Text;stringAddress=((TextBox)StoreGrid.Rows[e。RowIndex]。FindControl("storeAddress”))。Text.Trim();floatArea=float.Parse(((TextBox)StoreGrid。Rows[e。RowIndex]。FindControl(”storeArea”)).Text。Trim());stringstrsql=”updateStoreListsetstoreName=’"+Name+”’,storeAddress=’”+Address+”’,storeArea=’"+Area+”'wherestoreName=’”+updateId+”’";SqlCommandobjCmd=newSqlCommand(strsql,conn);objCmd.ExecuteNonQuery();conn。Close();StoreGrid。EditIndex=—1;band();}protectedvoidStoreGrid_RowCancelingEdit(objectsender,GridViewCancelEditEventArgse){StoreGrid。EditIndex=—1;band();}protectedvoidStoreGrid_RowDeleting(objectsender,GridViewDeleteEventArgse)//删除仓库信息和相对应仓库表{SqlConnectionconn=newSqlConnection(strConnect);conn。Open();stringdeleteid=StoreGrid。DataKeys[e。RowIndex].Value。ToString();stringdatesql=”select*from”+deleteid;SqlCommandobjCmd1=newSqlCommand(datesql,conn);SqlDataReadermyReader=objCmd1。ExecuteReader();if(myReader。Read()){Response。Write("〈script〉alert(’该仓库中还保存有货物,请先通过总仓管将货物调入其他仓库!’)〈/script>”);return;}myReader。Close();stringdropTable=”droptable”+deleteid;SqlCommandobjCmd2=newSqlCommand(dropTable,conn);objCmd2。ExecuteNonQuery();stringstrsql=”deletefromStoreListwherestoreName='”+deleteid+”’”;SqlCommandobjCmd3=newSqlCommand(strsql,conn);objCmd3.ExecuteNonQuery();conn.Close();band();}}调拨查询使用模糊匹配查询:代码如下:privatevoidStore(){pSearch。Visible=false;Remainpl。Visible=false;SqlConnectionconn=newSqlConnection(strConnect);conn。Open();SqlCommandsc=newSqlCommand(”selectdistinctstoreNamefromStoreList",conn);SqlDataReadermyReader=sc。ExecuteReader();while(myReader。Read()){pFrom。Items。Add(myReader[0]。ToString());pTo.Items。Add(myReader[0].ToString());}conn.Close();}privatestringsqlWhere{get{string_sqlWhere="1=1”;if(!string。IsNullOrEmpty(searchpName。Text)){_sqlWhere+=”andpNamelike’%”+searchpName.Text。Trim()+”%’”;}if(!string。IsNullOrEmpty(searchpKind.Text)){_sqlWhere+=”andpKindlike'%"+searchpKind。Text。Trim()+”%'”;}if(!string。IsNullOrEmpty(startTime。Text)&&!string.IsNullOrEmpty(endTime。Text)){_sqlWhere+=”andpTime〉=”+startTime。Text。Trim()+”andpTime<="+endTime。Text。Trim();}return_sqlWhere;}//set{_sqlWhere=value;}}//调拨查询条件privatevoidsearchBind()//查找数据{SqlConnectionconn=newSqlConnection(strConnect);stringziduan=”pNameas商品名,pKindas商品类型,pCountas调拨数量,pFromas原仓库,pToas调后仓库,pTimeas操作时间";SqlCommandacd=newSqlCommand("select"+ziduan+”fromManagerTablewhere”+sqlWhere,conn);acd。Connection.Open();SqlDataReadersda=acd。ExecuteReader();this。searchGrid。DataSource=sda;this.searchGrid。DataBind();acd.Connection.Close();}protectedvoidbtnSearch_Click(objectsender,EventArgse){searchBind

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论