SqlHelper 基类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
/**/
using System.Data.SqlClient;
using System.Data;
using System.Configuration;
/********************************************************************************
 ** 创建人:
 ** 创始时间:2012-11-27
 ** 修改人:
 ** 修改时间:
 ** 描述:
 ** 数据库操作基类
*********************************************************************************/
namespace DAL
{
    public class SqlHelper
    {
        public static SqlConnection connection;

        #region 打开数据库
        /// <summary>
        /// 打开数据库
        /// </summary>
        public static SqlConnection Conn
        {
            get
            {
                string connStr = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
                if (connection == null)
                {
                    connection = new SqlConnection(connStr);
                    connection.Open();
                }
                else if(connection.State==System.Data.ConnectionState.Closed){
                    connection = new SqlConnection(connStr);
                    connection.Open();
                }else if (connection.State==System.Data.ConnectionState.Broken){
                    connection.Close();
                    connection.Open();
                }
                return connection;
            }
        }
        #endregion

        #region 增,删,改ExecuteNonQuery
        /// <summary>
        /// 单个数据增,删,改
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static int ExecuteNonQuery(string sql)
        {
            try
            {
                using(SqlCommand cmd=new SqlCommand(sql,Conn))
                {
                    int result = cmd.ExecuteNonQuery();
                    return result;
                }
            }
            catch(SqlException ex)
            {
                throw ex;
            }
        }
        #endregion 

        #region 带参数的增,删,改ExecuteNonQuery
        /// <summary>
        /// 带多个参数的增,删,改
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="type"></param>
        /// <param name="values"></param>
        /// <returns></returns>
        public static int ExecuteNonQuery(string sql,CommandType type,params SqlParameter[] values)
        {
            try
            {
                using(SqlCommand cmd=new SqlCommand(sql,Conn))
                {
                    cmd.CommandType = type;
                    cmd.Parameters.AddRange(values);//
                    int result = cmd.ExecuteNonQuery();
                    return result;
                }
            }
            catch(SqlException ex)
            {
                throw ex;
            }
        }
        #endregion

        #region 查询语句ExecuteScalar
        /// <summary>
        /// 查单个值
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static int ExecuteScalar(string sql)
        {
            try
            {
                using(SqlCommand cmd=new SqlCommand(sql,Conn))
                {
                    int result = Convert.ToInt32(cmd.ExecuteScalar());
                    return result;
                }
            }
            catch(SqlException ex)
            {

                throw ex;
            }
        }
        #endregion 

        #region 带参数的查询语句ExecuteScalar
        /// <summary>
        /// 带执行类型的ExecuteScalar
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="type"></param>
        /// <param name="values"></param>
        /// <returns></returns>
        public static int ExecuteScalar(string sql,CommandType type,params SqlParameter[] values)
        {
            try
            {
                using(SqlCommand cmd=new SqlCommand(sql,Conn))
                {
                    cmd.CommandType = type;
                    cmd.Parameters.AddRange(values);
                    int result =Convert.ToInt32(cmd.ExecuteScalar());
                    return result;
                }
            }
            catch(SqlException ex)
            {
                throw ex;
            }
        }
        #endregion

        #region 查询,返回DataReader
        /// <summary>
        /// 查询表,获取多个记录
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static SqlDataReader ExecuteReader(string sql)
        {
            try
            {
                using(SqlCommand cmd=new SqlCommand(sql,Conn))
                {
                    SqlDataReader dtr = cmd.ExecuteReader();
                    return dtr;
                }
            }
            catch(SqlException ex)
            {
                throw ex;
            }
        }
        #endregion 

        #region 带参数的查询,返回DataReader
        /// <summary>
        /// 查询表,获取多个记录
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="type"></param>
        /// <param name="values"></param>
        /// <returns></returns>
        public static SqlDataReader ExecuteReader(string sql,CommandType type,params SqlParameter[] values)
        {
            try
            {
                using(SqlCommand cmd=new SqlCommand(sql,Conn))
                {
                    cmd.CommandType = type;
                    cmd.Parameters.AddRange(values);
                    SqlDataReader dtr = cmd.ExecuteReader();
                    return dtr;
                }
            }
            catch(SqlException ex)
            {
                throw ex;
            }
        }
        #endregion 

        #region 查询,返回datatable
        /// <summary>
        /// 返回datatable
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static DataTable dataTable(string sql)
        {
            try
            {
                DataSet dst = new DataSet();
                SqlCommand cmd = new SqlCommand(sql,Conn);
                SqlDataAdapter dad = new SqlDataAdapter(cmd);
                dad.Fill(dst);//在 DataSet 中添加或刷新行
                return dst.Tables[0];
            }
            catch(SqlException ex)
            {
                throw ex;
            }
        }
        #endregion

        #region 带参数的查询, 返回dataTable
        /// <summary>
        /// 返回dataTable
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="values"></param>
        /// <returns></returns>
        public static DataTable datatable(string sql,params SqlParameter[] values)
        {
            DataSet dst = new DataSet();
            SqlCommand cmd = new SqlCommand(sql,Conn);
            cmd.Parameters.AddRange(values);
            SqlDataAdapter dad = new SqlDataAdapter(cmd);
            dad.Fill(dst);//在 DataSet 中添加或刷新行
            return dst.Tables[0];
        }
        #endregion
    }
}
原文地址:https://www.cnblogs.com/dong897812629/p/2831447.html