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

📄 eight.html

📁 本源码实现了对数据库的最基本的操作
💻 HTML
📖 第 1 页 / 共 4 页
字号:
strConn = ConfigurationManager.AppSettings[&quot;strConn&quot;];<br>
}<br>
conn = new SqlConnection(strConn);<br>
cmd = new SqlCommand();<br>
cmd.Connection = conn;<br>
}</p>
<p>4.在GoodsSaveInfo.aspx.cs中写一个GetGoodsSaveInfo()的方法来提取库存配置资料。通过判定其DefaultView.Count是否大于0来确定是否有库存配置资料的数据,如果提取成功,就把相应的数据(商品满库数量,库存预警数量,配置修改时间)都赋值到页面上的对应字段TextBox控件上,对于不许修改的字段定义为只读(如配置修改时间),否则就设置初始值0和当前时间。</p>
<p class="code">/// &lt;summary&gt;<br>
/// 提取库存配置信息<br>
/// &lt;/summary&gt;<br>
private void GetGoodsSaveInfo()<br>
{<br>
DataTable myDtb = new DataTable();<br>
myDtb = GoodsSave.GetGoodsSaveInfo().Tables[0];<br>
if (myDtb.DefaultView.Count &gt; 0)<br>
{<br>
AllNum.Text = myDtb.DefaultView[0][&quot;AllNum&quot;].ToString();<br>
AlertNum.Text = myDtb.DefaultView[0][&quot;AlertNum&quot;].ToString();<br>
AddTime.Text = myDtb.DefaultView[0][&quot;AddTime&quot;].ToString();<br>
Session[&quot;GoodsSaveInfoID&quot;] = myDtb.DefaultView[0][&quot;GoodsSaveInfoID&quot;].ToString();<br>
}<br>
else<br>
{<br>
AllNum.Text = &quot;0&quot;;<br>
AlertNum.Text = &quot;0&quot;;<br>
AddTime.Text = DateTime.Now.ToString();<br>
Session[&quot;GoodsSaveInfoID&quot;] = &quot;0&quot;;<br>
}<br>
}</p>
<p>在库存类文件GoodsSave.cs上创建获取库存配置资料的方法GetGoodsSaveInfo(),该方法没有输入参数,完成库存配置资料的数据库提取功能,返回信息为DataSet。</p>
<p class="code">/// &lt;summary&gt;<br>
/// 提取库存配置信息<br>
/// &lt;/summary&gt;<br>
/// &lt;returns&gt;库存配置信息DataSet&lt;/returns&gt;<br>
public DataSet GetGoodsSaveInfo()<br>
{<br>
cmd.CommandText = string.Format(&quot;select * from GoodsSaveInfo order by GoodsSaveInfoID desc&quot;);<br>
SqlDataAdapter dad = new SqlDataAdapter(cmd);<br>
DataSet dts = new DataSet();<br>
try<br>
{<br>
conn.Open();<br>
dad.Fill(dts);<br>
}<br>
catch (Exception ex)<br>
{<br>
throw (ex);<br>
}<br>
finally<br>
{<br>
cmd.Dispose();<br>
conn.Close();<br>
}<br>
return dts;<br>
}</p>
<p>5.在资料修改提交的Click事件IsModify_Click()中加入所有修改字段的校验程序,通过校验就要覆盖数据库中的数据,在库存类文件GoodsSave.cs上创建修改库存配置资料的方法ModifyGoodsSaveInfo(),把三个信息修改字段作为参数输入给方法,完成库存配置资料的数据库覆盖功能,然后在GoodsSaveInfo.aspx.cs引用申明后调用。</p>
<p class="code">/// &lt;summary&gt;<br>
/// 修改库存配置信息<br>
/// &lt;/summary&gt;<br>
protected void IsModify_Click(object sender, EventArgs e)<br>
{<br>
if ((AllNum.Text.Trim().Length == 0) || (AlertNum.Text.Trim().Length == 0))<br>
{<br>
JScript.Alert(&quot;商品满库数量和库存预警数量不能为空!&quot;);<br>
return;<br>
}<br>
else<br>
{<br>
int goodsSaveInfoID = 0;<br>
if ((Session[&quot;GoodsSaveInfoID&quot;] != null) &amp;&amp; (Session[&quot;GoodsSaveInfoID&quot;].ToString() != &quot;&quot;))<br>
{<br>
goodsSaveInfoID = int.Parse(Session[&quot;GoodsSaveInfoID&quot;].ToString());<br>
}<br>
int allNum = 0;<br>
if (StringUtil.IsNumeric(AllNum.Text.Trim()))<br>
{<br>
allNum = int.Parse(AllNum.Text.Trim().ToString());<br>
}<br>
int alertNum = 0;<br>
if (StringUtil.IsNumeric(AlertNum.Text.Trim()))<br>
{<br>
alertNum = int.Parse(AlertNum.Text.Trim().ToString());<br>
}<br>
int modifyOk = GoodsSave.ModifyGoodsSaveInfo(goodsSaveInfoID, allNum, alertNum);<br>
if (modifyOk == 1)<br>
{<br>
JScript.Alert(&quot;修改成功,欢迎使用!&quot;);<br>
JScript.JavaScriptLocationHref(&quot;Main.aspx&quot;);<br>
}<br>
else<br>
{<br>
JScript.Alert(&quot;修改失败,请稍后再来!&quot;);<br>
return;<br>
}<br>
}<br>
}</p>
<p>库存类文件GoodsSave.cs上创建修改库存配置资料的方法ModifyGoodsSaveInfo()。</p>
<p class="code">/// &lt;summary&gt;<br>
/// 修改库存配置信息<br>
/// &lt;/summary&gt;<br>
/// &lt;param name=&quot;goodsSaveInfoID&quot;&gt;库存配置ID&lt;/param&gt;<br>
/// &lt;param name=&quot;allNum&quot;&gt;商品满库数量&lt;/param&gt;<br>
/// &lt;param name=&quot;alertNum&quot;&gt;库存预警数量&lt;/param&gt;<br>
/// &lt;returns&gt;flag标记&lt;/returns&gt;<br>
public int ModifyGoodsSaveInfo(int goodsSaveInfoID, int allNum, int alertNum)<br>
{<br>
int flag = 0;<br>
if (goodsSaveInfoID &gt; 0)<br>
{<br>
cmd.CommandText = string.Format(&quot;update GoodsSaveInfo set AllNum = {0},AlertNum = {1},AddTime = getdate() where GoodsSaveInfoID = {2}&quot;, allNum, alertNum, goodsSaveInfoID);<br>
}<br>
else<br>
{<br>
cmd.CommandText = string.Format(&quot;insert into GoodsSaveInfo (AllNum,AlertNum) values ({0},{1})&quot;, allNum, alertNum);<br>
}<br>
try<br>
{<br>
conn.Open();<br>
cmd.ExecuteNonQuery();<br>
flag = 1;<br>
}<br>
catch (Exception ex)<br>
{<br>
throw (ex);<br>
}<br>
finally<br>
{<br>
cmd.Dispose();<br>
conn.Close();<br>
}<br>
return flag;<br>
}</p>
<p><a href="#00">&lt;&lt;返回目录</a></p>
<p class="title02"><a id="03" name="03"></a>编写库存预警商品页面GoodsSaveAlert.aspx程序</p>
<p>1.创建库存预警商品页面GoodsSaveAlert.aspx,在页面上插入2个Panel控件,一个是库存预警商品列表显示(PalAllGoodsSaveAlert),一个是库存预警商品数量修改(PalOneGoodsSaveAlert),先显示PalAllGoodsSaveAlert,隐藏PalOneGoodsSaveAlert。</p>
<p><img src="images/8-2-1.JPG" width="641" height="340"><br>  
  <img src="images/8-2-2.JPG" width="641" height="169"></p>
<p>2.在PalAllGoodsSaveAlert的Panel控件中最上面加入页面的标题并插入一个服务器端按钮控件Button用来把实现把所有预警商品全部满库,再插入一个SqlDataSource数据源控件和一个GridView数据绑定控件,用来显示库存预警商品列表。</p>
<p>配置数据源控件,选择之前的连接字符串,手动输入如下查询语句。</p>
<p class="code">SELECT d.SaveNum, d.SaveAddNum, d.SaveTime, d.SaveAddTime, c.GoodsID, c.GoodsName, a.TypeName, b.BorderName FROM GoodsType AS a INNER JOIN GoodsInfo AS c ON a.TypeID = c.TypeID INNER JOIN GoodsBorder AS b ON c.BorderID = b.BorderID INNER JOIN GoodsSave AS d ON c.GoodsID = d.GoodsID INNER JOIN GoodsSaveInfo AS e ON d.SaveNum &lt; e.AlertNum ORDER BY d.SaveNum, a.TypeID DESC, b.BorderID DESC, c.GoodsOrder DESC</p>
<p class="note">相关知识点:<br>
  上面的查询语句是.NET 2.0在运行查询生成器时生成的代码,这里也可以输入我们习惯的SQL语句的写法,例如输入下面的代码所完成的查询功能和上面的是一样的。<br>
select d.SaveNum,d.SaveAddNum,d.SaveTime,d.SaveAddTime,c.GoodsID,c.GoodsName,a.TypeName,b.BorderName from GoodsType a,GoodsBorder b,GoodsInfo c ,GoodsSave d,GoodsSaveInfo e where a.TypeID = c.TypeID and b.BorderID = c.BorderID and c.GoodsID = d.GoodsID and d.SaveNum &lt; e.AlertNum order by d.SaveNum,a.TypeID desc,b.BorderID desc,c.GoodsOrder desc<br>
注意多表联合查询时SQL语句的写法。</p>
<p>为GridView控件选择以上数据源,启用分页和排序,编辑控件的属性以达到上图所示效果。编辑列,将当前库存数量字段的内容显示为红色(ItemStyle-&gt;ForeColor-&gt;Red),将最近增加数量字段的内容显示为蓝色(ItemStyle-&gt;ForeColor-&gt;Blue);设置两个时间字段的格式(DataFormatString)为{0:yyyy-MM-dd},并将HtmlEncode设置为false使该字段的内容以我们需要的格式显示;最后添加一个HyperLinkField字段,HeadText设为操作,Text设为编辑,DataNavigateUrlFields设为GoodsID,DataNavigateUrlFormatString设为GoodsSaveAlert.aspx?GoodsID={0}。</p>
<p>在PalOneGoodsSaveAlert的Panel控件中逐步添加库存预警商品所有字段的TextBox控件,控件ID分别为GoodsID、GoodsName、SaveNum、SaveAddNum、SaveTime、SaveAddTime,将GoodsID控件设为不可见用来存放商品的GoodsID,再将除SaveNum以外的四个控件设为只读,不允许修改。再创建1个服务器端按钮控件Button完成库存预警商品的数量修改功能,1个客户端Reset清空按钮。</p>
<p>页面的HTML代码如下</p>
<p class="code">&lt;%@ Page Language=&quot;C#&quot; AutoEventWireup=&quot;true&quot; CodeFile=&quot;GoodsSaveAlert.aspx.cs&quot; Inherits=&quot;Manage_GoodsSaveAlert&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;asp:Panel ID=&quot;PalAllGoodsSaveAlert&quot; runat=&quot;server&quot;&gt;<br>
&lt;table class=&quot;bor_1&quot; id=&quot;Table1&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;800&quot; align=&quot;center&quot;<br>
border=&quot;0&quot;&gt;<br>
&lt;tr&gt;<br>
&lt;td class=&quot;bgTitler&quot; align=&quot;center&quot; width=&quot;600&quot; height=&quot;30&quot;&gt;<br>
&lt;b&gt;库存预警商品列表&lt;/b&gt;&lt;/td&gt;<br>
&lt;td class=&quot;bgTitler&quot; align=&quot;center&quot; width=&quot;200&quot;&gt;<br>
&lt;asp:Button ID=&quot;AddAll&quot; runat=&quot;server&quot; Text=&quot;预警商品全部满库&quot; CssClass=&quot;btn1&quot; OnClick=&quot;AddAll_Click&quot;&gt;<br>
&lt;/asp:Button&gt;&lt;/td&gt;<br>
&lt;/tr&gt;<br>
&lt;/table&gt;<br>
&lt;br&gt;<br>
&lt;table id=&quot;Table2&quot; bordercolor=&quot;#003399&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;800&quot;<br>
align=&quot;center&quot; border=&quot;0&quot;&gt;<br>
&lt;tr&gt;<br>
&lt;td valign=&quot;top&quot; align=&quot;center&quot; width=&quot;100%&quot;&gt;<br>
&lt;asp:SqlDataSource ID=&quot;SqlDataSource1&quot; runat=&quot;server&quot; ConnectionString=&quot;&lt;%$ ConnectionStrings:WShopConnectionString %&gt;&quot;<br>
SelectCommand=&quot;SELECT d.SaveNum, d.SaveAddNum, d.SaveTime, d.SaveAddTime, c.GoodsID, c.GoodsName, a.TypeName, b.BorderName FROM GoodsType AS a INNER JOIN GoodsInfo AS c ON a.TypeID = c.TypeID INNER JOIN GoodsBorder AS b ON c.BorderID = b.BorderID INNER JOIN GoodsSave AS d ON c.GoodsID = d.GoodsID INNER JOIN GoodsSaveInfo AS e ON d.SaveNum &lt; e.AlertNum ORDER BY d.SaveNum, a.TypeID DESC, b.BorderID DESC, c.GoodsOrder DESC&quot;&gt;<br>
&lt;/asp:SqlDataSource&gt;<br>
&lt;asp:GridView ID=&quot;GridView1&quot; runat=&quot;server&quot; AllowPaging=&quot;True&quot; AllowSorting=&quot;True&quot;<br>
AutoGenerateColumns=&quot;False&quot; CellPadding=&quot;4&quot; DataKeyNames=&quot;GoodsID&quot; DataSourceID=&quot;SqlDataSource1&quot;<br>
ForeColor=&quot;#333333&quot; Width=&quot;100%&quot;&gt;<br>
&lt;FooterStyle BackColor=&quot;#507CD1&quot; Font-Bold=&quot;True&quot; ForeColor=&quot;White&quot; /&gt;<br>
&lt;Columns&gt;<br>
&lt;asp:BoundField DataField=&quot;TypeName&quot; HeaderText=&quot;所属一级分类&quot; SortExpression=&quot;TypeName&quot;&gt;<br>
&lt;ItemStyle Width=&quot;12%&quot; /&gt;<br>
&lt;HeaderStyle Wrap=&quot;True&quot; /&gt;<br>
&lt;/asp:BoundField&gt;<br>
&lt;asp:BoundField DataField=&quot;BorderName&quot; HeaderText=&quot;所属二级分类&quot; SortExpression=&quot;BorderName&quot;&gt;<br>
&lt;ItemStyle Width=&quot;12%&quot; /&gt;<br>
&lt;HeaderStyle Wrap=&quot;True&quot; /&gt;<br>
&lt;/asp:BoundField&gt;<br>
&lt;asp:BoundField DataField=&quot;GoodsName&quot; HeaderText=&quot;商品名称&quot; SortExpression=&quot;GoodsName&quot;&gt;<br>
&lt;ItemStyle Width=&quot;176px&quot; Wrap=&quot;True&quot; HorizontalAlign=&quot;Left&quot; /&gt;<br>
&lt;HeaderStyle Wrap=&quot;True&quot; /&gt;<br>
&lt;/asp:BoundField&gt;<br>
&lt;asp:BoundField DataField=&quot;SaveNum&quot; HeaderText=&quot;当前库存数量&quot; SortExpression=&quot;SaveNum&quot;&gt;<br>
&lt;ItemStyle ForeColor=&quot;Red&quot; Width=&quot;12%&quot; /&gt;<br>
&lt;HeaderStyle Wrap=&quot;True&quot; /&gt;<br>
&lt;/asp:BoundField&gt;<br>
&lt;asp:BoundField DataField=&quot;SaveTime&quot; HeaderText=&quot;最初入库时间&quot; SortExpression=&quot;SaveTime&quot;<br>
DataFormatString=&quot;{0:yyyy-MM-dd}&quot; HtmlEncode=&quot;False&quot;&gt;<br>
&lt;ItemStyle Width=&quot;12%&quot; /&gt;<br>
&lt;HeaderStyle Wrap=&quot;True&quot; /&gt;<br>
&lt;/asp:BoundField&gt;<br>
&lt;asp:BoundField DataField=&quot;SaveAddNum&quot; HeaderText=&quot;最近增加数量&quot; SortExpression=&quot;SaveAddNum&quot;&gt;<br>
&lt;ItemStyle ForeColor=&quot;Blue&quot; Width=&quot;12%&quot; /&gt;<br>
&lt;HeaderStyle Wrap=&quot;True&quot; /&gt;<br>
&lt;/asp:BoundField&gt;<br>
&lt;asp:BoundField DataField=&quot;SaveAddTime&quot; HeaderText=&quot;最近增加时间&quot; SortExpression=&quot;SaveAddTime&quot;<br>
DataFormatString=&quot;{0:yyyy-MM-dd}&quot; HtmlEncode=&quot;False&quot;&gt;<br>
&lt;ItemStyle Width=&quot;12%&quot; /&gt;<br>
&lt;HeaderStyle Wrap=&quot;True&quot; /&gt;<br>
&lt;/asp:BoundField&gt;<br>
&lt;asp:BoundField DataField=&quot;GoodsID&quot; HeaderText=&quot;GoodsID&quot; InsertVisible=&quot;False&quot; ReadOnly=&quot;True&quot;<br>
SortExpression=&quot;GoodsID&quot; Visible=&quot;False&quot; /&gt;<br>
&lt;asp:HyperLinkField HeaderText=&quot;操作&quot; Text=&quot;编辑&quot; DataNavigateUrlFields=&quot;GoodsID&quot; DataNavigateUrlFormatString=&quot;GoodsSaveAlert.aspx?GoodsID={0}&quot;&gt;<br>
&lt;ItemStyle Width=&quot;6%&quot; /&gt;<br>
&lt;HeaderStyle Wrap=&quot;True&quot; /&gt;<br>
&lt;/asp:HyperLinkField&gt;<br>
&lt;/Columns&gt;<br>
&lt;RowStyle BackColor=&quot;#EFF3FB&quot; /&gt;<br>
&lt;EditRowStyle BackColor=&quot;#2461BF&quot; /&gt;<br>

⌨️ 快捷键说明

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