SQLHelper数据库.net通用类

来源:互联网 发布:神硕加人软件 编辑:程序博客网 时间:2024/04/30 10:22
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Data.Common;
using System.Configuration;

namespace Tskill.Helper
{
    public class SqlHelper
    {
        private SqlConnection conn = null;
        private SqlCommand com = null;
        private SqlDataReader sdr = null;

        /// <summary>
        /// 重构SqlHelper
        /// </summary>
        public SqlHelper()
        {
            string connStr = ConfigurationManager.ConnectionStrings["connString"].ConnectionString;
            if (conn == null)
            {
                conn = new SqlConnection(connStr);   //初始化SqlConnection
            }
        }


        /// <summary>
        /// 获取数据库连接:当数据库连接关闭时,打开连接;再返回连接
        /// </summary>
        /// <returns>返回SqlConnection</returns>
        private SqlConnection GetConn()
        {
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
            return conn;
        }


        //打开数据库
        public void Open()
        {
            if (conn.State == ConnectionState.Closed)
            {
                conn.Open();
            }
        }

        //关闭数据库
        public void Close()
        {
            if (conn.State == ConnectionState.Open)
            {
                conn.Close();
            }
        }

        /// <summary>
        /// 该方法执行传入的SQL增、删、改语句
        /// </summary>
        /// <param name="sqlString">要执行的SQL语句</param>
        /// <returns>返回更新的记录数</returns>
        public int ExecuteNonQuery(string sqlString)
        {
            int res = 0;
            using (com = new SqlCommand(sqlString, GetConn()))
            {
                res = com.ExecuteNonQuery();
                conn.Close();
            }
            return res;
        }

        /// <summary>
        /// 该方法执行传入的SQL增删改语句
        /// </summary>
        /// <param name="sqlString">要执行的SQL语句</param>
        /// <returns>返回更新的记录数</returns>
        public int ExecuteNonQuery(string sqlString, List<SqlParameter> listPar)
        {
            int res;   //如果定义为0,后面判断就要注意了
            using (com = new SqlCommand(sqlString, GetConn()))
            {
                com.Parameters.AddRange(listPar.ToArray());
                res = com.ExecuteNonQuery();
                conn.Close();
            }
            return res;
        }

        /// <summary>
        /// 该方法执行传入的SQL查询语句
        /// </summary>
        /// <param name="sqlString">SQL查询语句</param>
        /// <returns>SqlDataReader</returns>
        public SqlDataReader ExecuteReader(string sqlString)
        {
            using (com = new SqlCommand(sqlString, GetConn()))
            {
                sdr = com.ExecuteReader();
            }
            return sdr;

        }

        /// <summary>
        /// 该方法执行传入的SQL查询语句
        /// </summary>
        /// <param name="sqlString">SQL查询语句</param>
        /// <returns>SqlDataReader</returns>
        public SqlDataReader ExecuteReader(string sqlString, List<SqlParameter> listPar)
        {
            using (com = new SqlCommand(sqlString, GetConn()))
            {
                com.Parameters.AddRange(listPar.ToArray());
                sdr = com.ExecuteReader();
            }
            return sdr;
        }


        /// <summary>
        /// 该方法执行传入的SQL查询语句
        /// </summary>
        /// <param name="sqlString">SQL查询语句</param>
        /// <returns>DataTable</returns>
        public DataTable DtReader(string sqlString)
        {
            DataTable dt = new DataTable();
            com = new SqlCommand(sqlString, GetConn());
            using (sdr = com.ExecuteReader(CommandBehavior.CloseConnection))  //如果关闭sdr连接,关联的conn连接也将关闭
            {
                dt.Load(sdr);
            }
            return dt;
        }

 

       /// <summary>
        /// 该方法执行传入的SQL查询语句
        /// </summary>
        /// <param name="sqlString">SQL查询语句</param>
        /// <returns>DataTable</returns>
        public DataSet dsReader(string sql)
        {
            DataSet ds = new DataSet();
            using (SqlDataAdapter sqldap = new SqlDataAdapter(sql, GetConn()))//数据适配器 就是一个类 ado.net 提供的 我们把.net 平台连库的方式称之为 ado.net "他可以动态添加 参数"
            {
                sqldap.Fill(ds);
                Close();
            }
            return ds;
        }


    }
}

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果电脑没有系统了怎么办 黑苹果安装之后怎么办 笔记本cpu核显坏了怎么办 粘贴大量文件卡住怎么办 mx不能播放rv40怎么办 迷你世界联机卡怎么办 绝地求生被火瓶烧了怎么办 win8电脑太卡怎么办 win8关机没反应怎么办 arma3没子弹了怎么办 g350d柴油冻了怎么办 散热硅胶干了怎么办 电脑打不开pdf文件怎么办 文件变成快捷方式打不开怎么办 ai文件打不开了怎么办 电脑下载了病毒软件怎么办 打嗝停不下来怎么办 咳嗽停不下来怎么办 电动机停不下来怎么办 电脑所有程序都打不开怎么办 机顶盒画面卡顿怎么办 电脑画面卡顿怎么办 鞋舌头跑偏怎么办 球球大作战老卡怎么办 孩子被打却不敢还手怎么办? 自卫砍伤了人怎么办 系统还原节点黑屏了怎么办 我惹事了要被打怎么办 诛仙宠物太多怎么办 笔记本玩lolfps低怎么办 lol延迟有42怎么办 软件安装后黑屏怎么办 汽车脚垫翘边怎么办 晴季寿司会员怎么办 理财产品跑路了怎么办 宝宝足跟血异常怎么办 孩子足跟血异常怎么办 打印机显示用户干预怎么办 打印机脱机状态怎么办win10 电脑打印机显示脱机怎么办 佳能打印机显示脱机怎么办