六、代码页中的类SQLHelper

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Collections.Generic;
using WestGarden.Model;
namespace WestGarden.Web
{
public partial class Default6 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
IList<CategoryInfo> catogories = new List<CategoryInfo>();
string connectionString = ConfigurationManager.ConnectionStrings["NetShopConnString"].ConnectionString;
string cmdText = "SELECT * FROM Category";
//使用静态类,可直接调用,不需要new。
SqlDataReader rdr = SqlHelper.ExecuteReader(connectionString, CommandType.Text, cmdText,null);
while (rdr.Read())
{
CategoryInfo category = new CategoryInfo(rdr.GetString(0), rdr.GetString(1), rdr.GetString(2));
catogories.Add(category);
}
rdr.Close();
repCategories.DataSource = catogories;
repCategories.DataBind();
}
}
//这个类是静态的,应用程序启动时,自动驻留在内存中,所建连接,在使用过程中,
//也只是Close(),放回到连接池中。并没有注销Dispose(),可以下次连接时,快速使用。
public abstract class SqlHelper
{
public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(connectionString);
try
{
//cmd.Connection = conn;
//cmd.CommandType = cmdType;
//cmd.CommandText = cmdText;

//conn.Open();
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
//如果创建了 SqlDataReader 并将 CommandBehavior 设置为 CloseConnection,
//则关闭 SqlDataReader 会自动关闭此连接。
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr;
}
catch
{
conn.Close();
throw;
}
//finally
//{
// conn.Close();
//}
}
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
cmd.Transaction = trans;
cmd.CommandType = cmdType;
if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
}
}

七、App_Code文件夹中的类SQLHelper.cs

using System;

using System.Configuration;

using System.Data;

using System.Data.SqlClient;

using System.Collections;

namespace WestGarden.Web

{

    /// <summary>

    /// SQLHelper 的摘要说明

    /// </summary>

    //这个类是静态的,应用程序启动时,自动驻留在内存中,所建连接,在使用过程中,

    //也只是Close(),放回到连接池中。并没有注销Dispose(),可以下次连接时,快速使用。

    public abstract class SqlHelper

    {

        public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)

        {

            SqlCommand cmd = new SqlCommand();

            SqlConnection conn = new SqlConnection(connectionString);

            try

            {

                //cmd.Connection = conn;

                //cmd.CommandType = cmdType;

                //cmd.CommandText = cmdText;

                //conn.Open();

                PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);

                //如果创建了 SqlDataReader 并将 CommandBehavior 设置为 CloseConnection,

                //则关闭 SqlDataReader 会自动关闭此连接。

                SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);

                cmd.Parameters.Clear();

                return rdr;

            }

            catch

            {

                conn.Close();

                throw;

            }

            //finally

            //{

            //    conn.Close();

            //}

        }

        private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)

        {

            if (conn.State != ConnectionState.Open)

                conn.Open();

            cmd.Connection = conn;

            cmd.CommandText = cmdText;

            if (trans != null)

                cmd.Transaction = trans;

            cmd.CommandType = cmdType;

            if (cmdParms != null)

            {

                foreach (SqlParameter parm in cmdParms)

                    cmd.Parameters.Add(parm);

            }

        }

    }

}

八、类库DBUtility中的类SQLHelper.cs

using System;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
namespace WestGarden.DBUtility
{
/// <summary>
/// SQLHelper 的摘要说明
/// </summary>
//这个类是静态的,应用程序启动时,自动驻留在内存中,所建连接,在使用过程中,
//也只是Close(),放回到连接池中。并没有注销Dispose(),可以下次连接时,快速使用。
public abstract class SqlHelper
{
public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters)
{
SqlCommand cmd = new SqlCommand();
SqlConnection conn = new SqlConnection(connectionString);
try
{
//cmd.Connection = conn;
//cmd.CommandType = cmdType;
//cmd.CommandText = cmdText;
//conn.Open();
PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);
//如果创建了 SqlDataReader 并将 CommandBehavior 设置为 CloseConnection,
//则关闭 SqlDataReader 会自动关闭此连接。
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
cmd.Parameters.Clear();
return rdr;
}
catch
{
conn.Close();
throw;
}
//finally
//{
// conn.Close();
//}
}
private static void PrepareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms)
{
if (conn.State != ConnectionState.Open)
conn.Open();
cmd.Connection = conn;
cmd.CommandText = cmdText;
if (trans != null)
cmd.Transaction = trans;
cmd.CommandType = cmdType;
if (cmdParms != null)
{
foreach (SqlParameter parm in cmdParms)
cmd.Parameters.Add(parm);
}
}
}
}

九、制作主界面Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="WestGarden.Web.Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>肯德基订餐系统——西园工作室</title>
</head>
<body>
<form id="form1" runat="server">
<asp:Panel ID="panFocus" runat="server" DefaultButton="btnSearch">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="780">
<tr valign="top">
<td rowspan="2">
<img src="Images/Comm_Images/Logo_home.jpg" alt="home" /></td>
<td height="25" width="141">
<asp:TextBox ID="txtSearch" runat="server" CssClass="homeSearchBox" Width="130px"></asp:TextBox></td>
<td width="50">
<asp:ImageButton ID="btnSearch" runat="server" AlternateText="Search" CausesValidation="false"
CssClass="paddingSearchicon" ImageUrl="Images/Comm_Images/button-search.gif" /></td>
<td width="50">
<asp:LoginStatus ID="lgnStatus" runat="server" CssClass="homeLink" LoginText="登 录"
LogoutAction="Redirect" LogoutPageUrl="~/Default.aspx" LogoutText="退 出" />
</td>
<td width="64">
</td>
</tr>
<tr>
<td colspan="3">
<img src="Images/Comm_Images/KFC.JPG" /></td>
<td width="64">
</td>
</tr>
</table>
</asp:Panel>
<table align="center" border="0" cellpadding="0" cellspacing="0" width="780">
<tr>
<td width="112">
</td>
<td bgcolor="#FFFFFF" width="5">
</td>
<td bgcolor="#FFFFFF" height="5" width="436">
</td>
<td bgcolor="#FFFFFF" style="width: 5px">
</td>
<td width="224">
</td>
</tr>
<tr>
<td>
</td>
<td bgcolor="#FFFFFF">
</td>
<td class="welcome">
欢迎光临肯德基订餐网站</td>
<td bgcolor="#FFFFFF" style="width: 5px">
</td>
<td>
</td>
</tr>
<tr>
<td colspan="5" height="1">
</td>
</tr>
<tr>
<td width="112">
<img height="290" src="Images/Comm_Images/door.jpg" width="112" alt="Sea Horse" /></td>
<td bgcolor="#FFFFFF" width="5">
</td>
<td valign="top" width="436">
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td>
打开菜单,会有精彩的发现,各种美味在向您招手</td>
</tr>
<tr>
<td>
等待着您的品尝.</td>
</tr>
<tr>
<td style="padding-left: 20px">
<asp:Repeater ID="repCategories" runat="server">
<HeaderTemplate>
<table cellspacing="0" border="0" style="border-collapse: collapse;">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:HyperLink runat="server" ID="lnkCategory" NavigateUrl='<%# string.Format("~/Items.aspx?page=0&categoryId={0}", Eval("CategoryId")) %>'
Text='<%# Eval("Name") %>' /><asp:HiddenField runat="server" ID="hidCategoryId" Value='<%# Eval("CategoryId") %>' />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<p>
</p>
<br />
</td>
</tr>
</table>
</td>
<td bgcolor="#FFFFFF" valign="top" style="width: 5px">
</td>
<td valign="top">
<img src="Images/Comm_Images/main_logo.gif" alt="西园软件出品" usemap="#mapWestGardenSoftWare"
border="0" /></td>
</tr>
<tr>
<td>
</td>
<td>
</td>
<td>
<td style="width: 5px">
</td>
<td>
</td>
</tr>
</table>
<map id="mapWestGardenSoftWare" name="西园软件">
target="_blank" alt="西园电脑工作室" />
</map>
</form>
</body>
</html>