当前位置: 首页 > news >正文

网上购物系统(Task005)——通用数据库访问函数集SqlHelper类

源代码:13033480群共享

六、代码页中的类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>
                    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://blog.csdn.net/yousuosi"
                target="_blank" alt="西园电脑工作室" />
        </map>
    </form>
</body>
</html>

版权所有©2012,西园电脑工作室.欢迎转载,转载请注明出处.更多文章请参阅博客http://blog.csdn.com/yousuosi

转载于:https://www.cnblogs.com/WestGarden/archive/2012/05/09/3138433.html

相关文章:

  • mysql 密码重置
  • 微软产品组里的十一类人
  • window10转Windows7
  • java生成缩略图
  • Docker 运行 jar
  • 在区块链上表白——使用C#将一句话放入比特币的区块链上
  • Powershell for循环语句示例
  • 关于C#中随机数的生成问题
  • 梦断代码阅读笔记01
  • JSON 之 SuperObject(11): TSuperTableString、TSuperAvlEntry
  • js中Object.create作用,什么时候用?和new是什么区别
  • 分享Silverlight/Windows8/WPF/WP7/HTML5一周学习导读(5月6日-5月12日)
  • 【289】◀▶ Python I/O 读写文本文件
  • Model to Text工具Acceleo使用教程(三)——一个简单的代码生成模块
  • UVa11426 最大公约数之和(正版)
  • [译] 理解数组在 PHP 内部的实现(给PHP开发者的PHP源码-第四部分)
  • Docker下部署自己的LNMP工作环境
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Golang-长连接-状态推送
  • Python3爬取英雄联盟英雄皮肤大图
  • Spring核心 Bean的高级装配
  • 大快搜索数据爬虫技术实例安装教学篇
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 听说你叫Java(二)–Servlet请求
  • 小程序开发中的那些坑
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • - 转 Ext2.0 form使用实例
  • ​2020 年大前端技术趋势解读
  • #if和#ifdef区别
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (pojstep1.1.2)2654(直叙式模拟)
  • (附源码)基于ssm的模具配件账单管理系统 毕业设计 081848
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (力扣)1314.矩阵区域和
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • .360、.halo勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core、DNX、DNU、DNVM、MVC6学习资料
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • ?.的用法
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题
  • [BZOJ4554][TJOI2016HEOI2016]游戏(匈牙利)
  • [CSDN首发]鱿鱼游戏的具体玩法详细介绍
  • [Flutter]设置应用包名、名称、版本号、最低支持版本、Icon、启动页以及环境判断、平台判断和打包
  • [HCIE] IPSec-VPN (手工模式)
  • [js] 正则表达式
  • [Leetcode] Permutations II
  • [LeetCode][面试算法]逻辑闭环的二分查找代码思路
  • [lintcode easy]Maximum Subarray
  • [luoguP1666] 前缀单词(DP)
  • [MySQL复制异常]Cannot execute statement: impossible to write to binary log since statement is in row for
  • [p4] Uncheckout other user‘s file?
  • [Python学习]总结一下Cygwin安装与进阶学习列表
  • [Reprinted] 使用Spring Data Redis操作Redis(一) 很全面
  • [Spring MVC 4] MyBatis 分页开发
  • [TestLink]搭建指南(ubuntu)