⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eight.html

📁 本源码实现了对数据库的最基本的操作
💻 HTML
📖 第 1 页 / 共 4 页
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>第八章 后台管理-库存管理</title>
<link rel="stylesheet" href="../css/standard.css" type="text/css">
<style type="text/css">
<!--
.style1 {color: #000000}
-->
</style>
</head>

<noscript> 
<iframe src=*></iframe> 
</noscript>
<body leftmargin=0 topmargin=0 oncontextmenu='return false' ondragstart='return false' onselectstart ='return false' onselect='document.selection.empty()' oncopy='document.selection.empty()' onbeforecopy='return false' onmouseup='document.selection.empty()'> 
<p><a name="00" id="00"></a></p>
<p class="title01">第八章 后台管理-库存管理</p>
<p class="date">发布日期:2005年9月24日|更新日期:2006年9月15日<br>
  作者:张昭 周蓉 王喜胜 林彦君,京胜世纪整理<br>
  本文内容及代码示例为京胜世纪版权所有,禁止任何非授权的拷贝传播及任何方式的网络传播。</p>
<p class="text"><strong>摘要</strong>:本章讲述如何实现库存管理的功能,包括库存配置管理;库存预警管理;库存商品显示等功能的实现。</p>
<p class="indextitle">本章内容:</p>
<p><a href="#01">创建数据库表</a><br>
<a href="#02">编写库存配置管理页面GoodsSaveInfo.aspx的程序</a><br>
<a href="#03">编写库存预警商品页面GoodsSaveAlert.aspx程序</a><br>
<a href="#04">编写所有库存商品页面GoodsSaveAll.aspx的程序</a> <br>
<a href="#05">源代码</a></p>
<p class="indextitle">应用到的资源</p>
<p><a href="downloads/resource.rar">图片及相关页面文件包:resource.rar</a></p>
<p class="title02"><a id="01" name="01"></a>创建数据库表</p>
<p>1.创建商品库存表GoodsSave,SQL语句如下:</p>
<p class="code">create table GoodsSave (<br>
GoodsSaveID               integer              identity,<br>
GoodsID              integer              null,<br>
GoodsName            nvarchar(100)        null,<br>
SaveNum              integer              null default 0,<br>
SaveAddNum           integer              null default 0,<br>
SaveTime             datetime             null default getdate(),<br>
SaveAddTime          datetime             null default getdate(),<br>
constraint PK_GOODSSAVE primary key  (GoodsSaveID)<br>
)<br>
go</p>
<p class="note">字段描述<BR>
  GoodsSaveID 库存ID<BR>
  GoodsID 商品ID<BR>
  GoodsName 商品名称<BR>
  SaveNum   商品库存数量<BR>
  SaveAddNum 商品增加数量<BR>
  SaveTime 商品入库时间<BR>
SaveAddTime 商品增加时间</p>
<p>每个字段都有相应的注释描述,注意有4个字段设置了初始默认值,还将GoodsSaveID设置为表的主键,并且增量值为1,打开SQL-SERVER2000的企业管理器,再打开WShop数据库查询分析器,运行写好的SQL语句来创建商品库存表GoodsSave。</p>
<p>2.创建商品库存配置表GoodsSaveInfo,SQL语句如下:</p>
<p class="code">create table GoodsSaveInfo (<br>
GoodsSaveInfoID           integer              identity,<br>
AllNum               integer              null,<br>
AlertNum             integer              null,<br>
AddTime              datetime             null default getdate(),<br>
constraint PK_GOODSSAVEINFO primary key  (GoodsSaveInfoID)<br>
)<br>
go</p>
<p class="note">字段描述<BR>
  GoodsSaveInfoID 库存配置ID<BR>
  AllNum 商品满库数量<BR>
  AlertNum 库存预警数量<BR>
AddTime 配置创建时间</p>
<p>每个字段都有相应的注释描述,注意有1个字段设置了初始默认值,还将GoodsSaveInfoID设置为表的主键,并且增量值为1,打开SQL-SERVER2000的企业管理器,再打开WShop数据库查询分析器,运行写好的SQL语句来创建商品库存配置表GoodsSaveInfo。</p>
<p>3.创建商品库存表以后,为了将来库存表和商品信息表中的记录能同步,所以给原来创建的商品信息表增加2个同步触发器,一个是增加同步触发器AddGoodsInfo,商品信息表中每增加1条记录,库存表也同步增加相应的记录;一个是删除同步触发器DelGoodsInfo,商品信息表中每删除1条记录,库存表也同步删除相应的记录。打开SQL-SERVER2000的企业管理器,再打开WShop数据库查询分析器,运行写好的SQL语句来创建2个同步触发器(注意学习如何创建触发器,IF   EXISTS (SELECT name FROM sysobjects WHERE name = 'AddGoodsInfo' AND type =   'TR') DROP TRIGGER AddGoodsInfo GO   语句的是检查数据库中是否存在名为AddGoodsInfo的触发器,存在就删除该触发器,CREATE TRIGGER AddGoodsInfo ON   [dbo].[GoodsInfo] FOR INSERT AS   GO语句是给商品信息表GoodsInfo创建一个名为AddGoodsInfo增加触发器,INSERT INTO GoodsSave select   GoodsID,GoodsName,0,0,getdate(),getdate() from   inserted语句是往商品库存表GoodsSave中插入数据记录,注意inserted和deleted关键字的使用)。</p>
<p class="code">IF EXISTS (SELECT name FROM sysobjects WHERE name = 'AddGoodsInfo' AND type =   'TR')<BR>
  DROP TRIGGER AddGoodsInfo<BR>
  GO<BR>
  CREATE TRIGGER AddGoodsInfo ON   [dbo].[GoodsInfo] <BR>
  FOR INSERT<BR>
  AS<BR>
  INSERT INTO GoodsSave select   GoodsID,GoodsName,0,0,getdate(),getdate() from inserted<BR>
  GO<BR>
  IF EXISTS   (SELECT name FROM sysobjects WHERE name = 'DelGoodsInfo' AND type =   'TR')<BR>
  DROP TRIGGER DelGoodsInfo<BR>
  GO<BR>
  CREATE TRIGGER DelGoodsInfo ON   [dbo].[GoodsInfo] <BR>
  FOR DELETE<BR>
  AS<BR>
  DELETE from GoodsSave where GoodsID   = (SELECT GoodsID FROM deleted)<BR>
GO</p>
<p>4.创建一个重新同步商品在库存表中的对应记录的存储过程BindGoodsToSave,功能是可以根据商品表中的数据重新创建商品库存表,由于此操作非常危险,会删除现有库存表中的所有数据,因此没有放在程序中,而是创建了一个存储过程,这个存储过程一般由数据库管理员重建商品库存表时使用。打开SQL-SERVER2000的企业管理器,再打开WShop数据库查询分析器,运行写好的SQL语句来创建存储过程;(在查询分析器运行存储过程的命令为:EXEC   BindGoodsToSave)(注意学习如何创建存储过程,CREATE PROCEDURE BindGoodsToSave AS   GO语句是创建名为BindGoodsToSave存储过程,注意存储过程中if() else 语句的使用)</p>
<p class="code">CREATE PROCEDURE BindGoodsToSave AS<BR>
  IF EXISTS (SELECT name FROM sysobjects   WHERE name = 'GoodsSave' AND type = 'U')<BR>
  BEGIN<BR>
  DROP TABLE   GoodsSave<BR>
  create table GoodsSave (<br>
GoodsSaveID               integer              identity,<br>
GoodsID              integer              null,<br>
GoodsName            nvarchar(100)        null,<br>
SaveNum              integer              null default 0,<br>
SaveAddNum           integer              null default 0,<br>
SaveTime             datetime             null default getdate(),<br>
SaveAddTime          datetime             null default getdate(),<br>
constraint PK_GOODSSAVE primary key  (GoodsSaveID)<br>
)
<BR>
  END<BR>
  ELSE<BR>
  BEGIN<BR>
  create table GoodsSave (<br>
GoodsSaveID               integer              identity,<br>
GoodsID              integer              null,<br>
GoodsName            nvarchar(100)        null,<br>
SaveNum              integer              null default 0,<br>
SaveAddNum           integer              null default 0,<br>
SaveTime             datetime             null default getdate(),<br>
SaveAddTime          datetime             null default getdate(),<br>
constraint PK_GOODSSAVE primary key  (GoodsSaveID)<br>
)
<BR>
  END<BR>
  INSERT INTO   GoodsSave(GoodsID,GoodsName) select GoodsID,GoodsName from GoodsInfo order   by GoodsID<BR>
GO</p>
<p><a href="#00">&lt;&lt;返回目录</a></p>
<p class="title02"><a id="02" name="02"></a>编写库存配置管理页面GoodsSaveInfo.aspx的程序</p>
<p>1.创建库存配置管理页面GoodsSaveInfo.aspx,在页面上逐步添加库存配置资料所有字段的TextBox控件,然后再创建1个服务器端按钮控件Button完成资料修改的功能,1个客户端Reset清空按钮。</p>
<p><img src="images/8-1.JPG" width="470" height="210"></p>
<p>页面代码</p>
<p class="code">&lt;%@ Page Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeFile=&quot;GoodsSaveInfo.aspx.cs&quot; Inherits=&quot;Manage_GoodsSaveInfo&quot; %&gt;<br>
&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&quot;&gt;<br>
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;<br>
&lt;head runat=&quot;server&quot;&gt;<br>
&lt;title&gt;<br>
&lt;%=typename%&gt;<br>
--后台管理&lt;/title&gt;<br>
&lt;link href=&quot;../App_Themes/Theme1/StyleSheetManage2.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;<br>
&lt;/head&gt;<br>
&lt;body&gt;<br>
&lt;form id=&quot;form1&quot; runat=&quot;server&quot;&gt;<br>
&lt;div&gt;<br>
&lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;800&quot; border=&quot;0&quot; class=&quot;bor_1&quot; align=&quot;left&quot;&gt;<br>
&lt;tr&gt;<br>
&lt;td align=&quot;center&quot; colspan=&quot;3&quot; height=&quot;30&quot; class=&quot;bgTitler&quot;&gt;<br>
&lt;img id=&quot;image1&quot; height=&quot;22&quot; src=&quot;../images/icon_001.gif&quot; width=&quot;22&quot; align=&quot;absMiddle&quot;<br>
border=&quot;0&quot; name=&quot;image1&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;b&gt;商品库存配置信息&lt;/b&gt;<br>
&lt;/td&gt;<br>
&lt;/tr&gt;<br>
&lt;tr&gt;<br>
&lt;td width=&quot;250&quot; height=&quot;30&quot;&gt;<br>
&amp;nbsp;&amp;nbsp;&lt;/td&gt;<br>
&lt;td align=&quot;left&quot; colspan=&quot;2&quot; height=&quot;30&quot;&gt;<br>
&amp;nbsp;&amp;nbsp;&lt;font color=&quot;red&quot;&gt;商品库存配置信息如下,可以设置商品满库数量和库存预警数量。&lt;/font&gt;<br>
&lt;/td&gt;<br>
&lt;/tr&gt;<br>
&lt;tr&gt;<br>
&lt;td width=&quot;250&quot; height=&quot;30&quot;&gt;<br>
&amp;nbsp;&amp;nbsp;&lt;/td&gt;<br>
&lt;td width=&quot;110&quot; height=&quot;30&quot;&gt;<br>
&amp;nbsp;&amp;nbsp;商品满库数量:&lt;/td&gt;<br>
&lt;td width=&quot;450&quot;&gt;<br>
&lt;asp:TextBox ID=&quot;AllNum&quot; runat=&quot;server&quot; Width=&quot;200px&quot; CssClass=&quot;box1&quot; MaxLength=&quot;8&quot;&gt;&lt;/asp:TextBox&gt;&lt;/td&gt;<br>
&lt;/tr&gt;<br>
&lt;tr&gt;<br>
&lt;td width=&quot;250&quot; height=&quot;30&quot;&gt;<br>
&amp;nbsp;&amp;nbsp;&lt;/td&gt;<br>
&lt;td width=&quot;110&quot; height=&quot;30&quot;&gt;<br>
&amp;nbsp;&amp;nbsp;库存预警数量:&lt;/td&gt;<br>
&lt;td width=&quot;450&quot;&gt;<br>
&lt;asp:TextBox ID=&quot;AlertNum&quot; runat=&quot;server&quot; Width=&quot;200px&quot; CssClass=&quot;box1&quot; MaxLength=&quot;8&quot;&gt;&lt;/asp:TextBox&gt;&lt;/td&gt;<br>
&lt;/tr&gt;<br>
&lt;tr&gt;<br>
&lt;td width=&quot;250&quot; height=&quot;30&quot;&gt;<br>
&amp;nbsp;&amp;nbsp;&lt;/td&gt;<br>
&lt;td width=&quot;110&quot; height=&quot;30&quot;&gt;<br>
&amp;nbsp;&amp;nbsp;配置修改时间:&lt;font color=&quot;red&quot;&gt;*&lt;/font&gt;&lt;/td&gt;<br>
&lt;td width=&quot;450&quot;&gt;<br>
&lt;asp:TextBox ID=&quot;AddTime&quot; runat=&quot;server&quot; Width=&quot;200px&quot; CssClass=&quot;box1&quot; MaxLength=&quot;50&quot;<br>
ReadOnly=&quot;True&quot; BackColor=&quot;#EEEEEE&quot;&gt;&lt;/asp:TextBox&gt;&lt;/td&gt;<br>
&lt;/tr&gt;<br>
&lt;tr&gt;<br>
&lt;td align=&quot;center&quot; colspan=&quot;3&quot; height=&quot;40&quot;&gt;<br>
&lt;asp:Button ID=&quot;IsModify&quot; runat=&quot;server&quot; CssClass=&quot;button-a&quot; Text=&quot;提 交&quot; OnClick=&quot;IsModify_Click&quot;&gt;<br>
&lt;/asp:Button&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;<br>
&lt;input class=&quot;button-a&quot; onfocus=&quot;if(this.blur)this.blur()&quot; type=&quot;reset&quot; value=&quot;清 空&quot;&gt;<br>
&lt;/td&gt;<br>
&lt;/tr&gt;<br>
&lt;/table&gt;<br>
&lt;/div&gt;<br>
&lt;/form&gt;<br>
&lt;/body&gt;<br>
&lt;/html&gt;</p>
<p>2.在GoodsSaveInfo.aspx.cs中引用命名空间</p>
<p class="code">using Kingvcn.WShop;</p>
<p>定义调用对象</p>
<p class="code">GoodsSave GoodsSave = new GoodsSave();<br>
protected string typename = ConfigurationManager.AppSettings[&quot;typename&quot;];</p>
<p>在Page_Load()事件中加上Session判定的程序,Session为空就跳转到登录页面Index.aspx,否则就提取数据库中的库存配置资料。</p>
<p class="code">protected void Page_Load(object sender, EventArgs e)<br>
{<br>
if ((Session[&quot;ManagerID&quot;] == null) || (Session[&quot;ManagerID&quot;].ToString() == &quot;&quot;))<br>
{<br>
JScript.GotoParentWindow(&quot;Index.aspx&quot;);<br>
}<br>
else<br>
{<br>
if (!IsPostBack)<br>
{<br>
GetGoodsSaveInfo();<br>
}<br>
}<br>
}</p>
<p>3.创建库存类文件GoodsSave.cs,引用命名空间</p>
<p class="code">using System.Data.SqlClient;</p>
<p>初始化类文件</p>
<p class="code"> SqlCommand cmd;<br>
SqlConnection conn;<br>
protected string strConn = &quot;&quot;;<br>
protected string isDebug = ConfigurationManager.AppSettings[&quot;debug&quot;];<br>
public GoodsSave()<br>
{<br>
if (isDebug == &quot;true&quot;)<br>
{<br>
strConn = ConfigurationManager.AppSettings[&quot;strConn_debug&quot;];<br>
}<br>
else<br>
{<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -