zoukankan      html  css  js  c++  java
  • 重构的数据库助手类

    /*
     * 创建人:张良伟
     * 创建时间:2013-12-10 19:00
     * 说明:数据库助手类
     * 版权所有:张良伟&www.tg029.com(众志网)
     */
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;

    namespace DAL
    {
        public class SQLHelper
        {
            private SqlConnection conn = null;
            private SqlCommand cmd = null;
            private SqlDataReader sdr = null;
            public SQLHelper()
            {
                string connStr = @"server=2013-20131109GT;database=newssystem;uid=sa;pwd=123456";
                conn = new SqlConnection(connStr);
            }

            private SqlConnection GetConn()
            {
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }
                return conn;
            }

            /// <summary>
            ///  执行不带参数的增删改SQL语句或存储过程
            /// </summary>
            /// <param name="cmdText">增删改SQL语句或存储过程</param>
            /// <param name="ct">命令类型</param>
            /// <returns></returns>
            public int ExecuteNonQuery(string cmdText, CommandType ct)
            {
                int res;
                try
                {
                    cmd = new SqlCommand(cmdText, GetConn());
                    cmd.CommandType = ct;
                    res = cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    throw ex;
                }
                finally
                {
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
                }
                return res;
            }

            /// <summary>
            ///  执行带参数的增删改SQL语句或存储过程
            /// </summary>
            /// <param name="cmdText">增删改SQL语句或存储过程</param>
            /// <param name="ct">命令类型</param>
            /// <returns></returns>
            public int ExecuteNonQuery(string cmdText, SqlParameter[] paras, CommandType ct)
            {
                int res;
                using (cmd = new SqlCommand(cmdText, GetConn()))
                {
                    cmd.CommandType = ct;
                    cmd.Parameters.AddRange(paras);
                    res = cmd.ExecuteNonQuery();
                }
                return res;
            }

            /// <summary>
            ///  执行查询SQL语句或存储过程
            /// </summary>
            /// <param name="cmdText">查询SQL语句或存储过程</param>
            /// <param name="ct">命令类型</param>
            /// <returns></returns>
            public DataTable ExecuteQuery(string cmdText, CommandType ct)
            {
                DataTable dt = new DataTable();
                cmd = new SqlCommand(cmdText, GetConn());
                cmd.CommandType = ct;
                using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    dt.Load(sdr);
                }
                return dt;
            }

            /// <summary>
            ///  执行带参数的查询SQL语句或存储过程
            /// </summary>
            /// <param name="cmdText">查询SQL语句或存储过程</param>
            /// <param name="paras">参数集合</param>
            /// <param name="ct">命令类型</param>
            /// <returns></returns>
            public DataTable ExecuteQuery(string cmdText, SqlParameter[] paras, CommandType ct)
            {
                DataTable dt = new DataTable();
                cmd = new SqlCommand(cmdText, GetConn());
                cmd.CommandType = ct;
                cmd.Parameters.AddRange(paras);
                using (sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                {
                    dt.Load(sdr);
                }
                return dt;
            }
        }
    }

  • 相关阅读:
    “ODBC驱动程序不支持动态记录集”错误的解决
    Pro *C/C++学习笔记(一)
    探讨全局变量的析构顺序
    指针和数组关系初探
    (转)Visual C++开发工具与调试技巧整理
    对利用Session纪录datagrid模板列中CheckBox的状态的一点改进
    大学老师列传
    重读保尔的意义
    Rich Edit控件的使用
    C++程序员常用工具集
  • 原文地址:https://www.cnblogs.com/liangwei/p/3468325.html
Copyright © 2011-2022 走看看