详细分析通用数据库访问函数集SqlHelper类方法

代码页中的类SQLHelper
   
    [csharp]  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);
   
    }
   
    }
   
    }
   
    }
   
    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
   
    [csharp] 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);
   
    }
   
    }
   
    }
   
    }
   
    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
   
    [html] <%@ 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=\'#\'" /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=\'#\'" /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=\'#\'" /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>更多http://www.cnblogs.com/bolgaoyephp/
    
    </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=\'#\'" /Comm_Images/main_logo.gif" alt="西园软件出品" usemap="#mapWestGardenSoftWare"
   
    border="0" /></td>
   
    </tr>
   
    <tr>
   
    <td>
   
    </td>
   
    <td>
   
    </td>
   
    <td>
   
    Version 1.0 版权所有:西园电脑工作室。QQ交流群:13033480</td>
   
    <td style="width: 5px">
   
    </td>
   
    <td>
   
    </td>
   
    </tr>
   
    </table>
   
    <map id="mapWestGardenSoftWare" name="西园软件">
   
    <area shape="rect" coords="240,235,140,300" href="http:// "
   
    target="_blank" alt="西园电脑工作室" />
   
    </map>
   
    </form>
   
    </body>
   
    </html>

你可能感兴趣的:(数据库访问,通用,的)