风言枫语  

自己写sqlhelper类

 

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;

namespace birthday
{
    /// <summary>
    /// SqlHelper
    /// </summary>
    [Serializable]
    public class SqlHelper
    {
        //数据库连接字符串
        private static string strConn = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString;

        #region ExecuteNonQuery

        /// <summary>
        /// 执行T-sql语句 并返回受影响行数
        /// </summary>
        /// <param name="sql">T-sql语句</param>
        /// <returns>没有受影响行数返回-1</returns>
        public static int ExecuteNonQuery(string sql)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    return cmd.ExecuteNonQuery();
                }
            }
        }

        /// <summary>
        /// 执行T-sql语句 并返回受影响行数
        /// </summary>
        /// <param name="sql">T-sql语句</param>
        /// <param name="SqlParameter">参数</param>
        /// <returns>没有受影响行数返回-1</returns>
        public static int ExecuteNonQuery(string sql, params SqlParameter[] SqlParameter)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(SqlParameter);
                    return cmd.ExecuteNonQuery();
                }
            }
        }

        #endregion

        #region ExecuteScalar

        /// <summary>
        /// 执行T-sql语句 并返回结果的第一行第一列(忽略其他列)
        /// </summary>
        /// <param name="sql">T-sql语句</param>
        /// <returns>没有列则返回null</returns>
        public static object ExecuteScalar(string sql)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    return cmd.ExecuteScalar();
                }
            }
        }

        /// <summary>
        /// 执行T-sql语句 并返回结果的第一行第一列(忽略其他列)
        /// </summary>
        /// <param name="sql">T-sql语句</param>
        /// <param name="SqlParameter">参数</param>
        /// <returns>没有列则返回null</returns>
        public static object ExecuteScalar(string sql, params SqlParameter[] SqlParameter)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(SqlParameter);
                    return cmd.ExecuteScalar();
                }
            }
        }

        #endregion

        #region ExecuteReader

        /// <summary>
        /// 以只进流方式读取数据,查询到的数据存储在服务器中
        /// </summary>
        /// <param name="sql">T-sql 语句</param>
        /// <returns>数据流</returns>
        public static SqlDataReader ExecuteReader(string sql)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    return cmd.ExecuteReader();
                }
            }
        }

        /// 以只进流方式读取数据,查询到的数据存储在服务器中
        /// </summary>
        /// <param name="sql">T-sql 语句</param>
        /// <param name="cbh">查询结果、查询数据的说明</param>
        /// <returns>数据流</returns>
        public static SqlDataReader ExecuteReader(string sql, CommandBehavior CommandBehavior)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    return cmd.ExecuteReader(CommandBehavior);
                }
            }
        }

        /// <summary>
        /// 以只进流方式读取数据,查询到的数据存储在服务器中
        /// </summary>
        /// <param name="sql">T-sql 语句</param>
        /// <param name="SqlParameter">参数</param>
        /// <returns>数据流</returns>
        public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] SqlParameter)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(SqlParameter);
                    return cmd.ExecuteReader();
                }
            }
        }

        /// <summary>
        /// 以只进流方式读取数据,查询到的数据存储在服务器中
        /// </summary>
        /// <param name="sql">T-sql 语句</param>
        /// <param name="SqlParameter">参数</param>
        /// <returns>数据流</returns>
        public static SqlDataReader ExecuteReader(string sql, CommandBehavior CommandBehavior, params SqlParameter[] SqlParameter)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(SqlParameter);
                    return cmd.ExecuteReader(CommandBehavior);
                }
            }
        }

        #endregion

        #region ExeccutDataSet

        /// <summary>
        /// 返回以xml描述的不依赖于数据库的独立数据集合,数据存放于客户端,相当于内存中的数据库
        /// </summary>
        /// <param name="sql">T-sql 语句</param>
        /// <returns>数据集合</returns>
        public static DataSet ExeccutDataSet(string sql)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    SqlDataAdapter _sda = new SqlDataAdapter(cmd);
                    DataSet _ds = new DataSet();
                    _sda.Fill(_ds);
                    return _ds;
                }
            }
        }

        /// <summary>
        /// 返回以xml描述的不依赖于数据库的独立数据集合,数据存放于客户端,相当于内存中的数据库
        /// </summary>
        /// <param name="sql">T-sql 语句</param>
        /// <param name="SqlParameter">参数</param>
        /// <returns>数据集合</returns>
        public static DataSet ExeccutDataSet(string sql, params SqlParameter[] SqlParameter)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(SqlParameter);
                    SqlDataAdapter _sda = new SqlDataAdapter(cmd);
                    DataSet _ds = new DataSet();
                    _sda.Fill(_ds);
                    return _ds;
                }
            }
        }

        #endregion

        #region ExeccutDataTable

        /// <summary>
        /// 返回临时保存数据的网格虚拟表(表示内存中数据的一个表)
        /// </summary>
        /// <param name="sql">T-sql 语句</param>
        /// <returns>数据虚拟表</returns>
        public static DataTable ExeccutDataTable(string sql)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    SqlDataAdapter _sda = new SqlDataAdapter(cmd);
                    DataTable _data = new DataTable();
                    _sda.Fill(_data);
                    return _data;
                }
            }
        }

        /// <summary>
        /// 返回临时保存数据的网格虚拟表(表示内存中数据的一个表)
        /// </summary>
        /// <param name="sql">T-sql 语句</param>
        /// <param name="SqlParameter">参数</param>
        /// <returns>数据虚拟表</returns>
        public static DataTable ExeccutDataTable(string sql, params SqlParameter[] SqlParameter)
        {
            using (SqlConnection conn = new SqlConnection(strConn))
            {
                conn.Open();
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    cmd.Parameters.AddRange(SqlParameter);
                    SqlDataAdapter _sda = new SqlDataAdapter(cmd);
                    DataTable _data = new DataTable();
                    _sda.Fill(_data);
                    return _data;
                }
            }
        }

        #endregion

        #region ExecuteDataRow

        /// <summary>
        /// 返回数据行(返回第一行,忽略其他行)
        /// </summary>
        /// <param name="sql">T-sql 语句</param>
        /// <returns>返回数据行</returns>
        public static DataRow ExecuteDataRow(string sql)
        {

            return SqlHelper.ExeccutDataTable(sql).Rows[0];
        }

        /// <summary>
        /// 返回数据行(返回第一行,忽略其他行)
        /// </summary>
        /// <param name="sql">T-sql 语句</param>
        /// <param name="SqlParameter">参数</param>
        /// <returns>返回数据行</returns>
        public static DataRow ExecuteDataRow(string sql, params SqlParameter[] SqlParameter)
        {
            return SqlHelper.ExeccutDataTable(sql, SqlParameter).Rows[0];
        }

        #endregion

        #region GetRecordCount

        /// <summary>
        /// 得到数据总条数
        /// </summary>
        /// <param name="table">表名称</param>
        /// <returns>数据总条数</returns>
        public static int GetRecordCount(string table)
        {
            int RecordCount = 0;
            string sql = "select count(*) from " + table;
            if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out RecordCount))
            {
                return RecordCount;
            }
            else
            {
                return 0;
            }
        }

        /// <summary>
        /// 得到数据总条数
        /// </summary>
        /// <param name="table">表名称</param>
        /// <param name="where">过滤条件</param>
        /// <returns>得到数据总条数</returns>
        public static int GetRecordCount(string table, string where)
        {
            int RecordCount = 0;
            string sql = "select count(*) from " + table + " where 1=1 and " + where;
            if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out RecordCount))
            {
                return RecordCount;
            }
            else
            {
                return 0;
            }
        }

        #endregion

        #region GetRecordMax

        /// <summary>
        /// 得到指定表指定列最大值
        /// </summary>
        /// <param name="table">表名称</param>
        /// <param name="field">列名称</param>
        /// <returns>最大值</returns>
        public static int GetRecordMax(string table, string field)
        {
            int _max = 0;
            string sql = "select max(" + field + ") from " + table;
            if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out _max))
            {
                return _max;
            }
            else
            {
                return 0;
            }
        }

        /// <summary>
        /// 得到指定表指定列最大值
        /// </summary>
        /// <param name="table">表名称</param>
        /// <param name="field">列名称</param>
        /// <param name="where">过滤条件</param>
        /// <returns>最大值</returns>
        public static int GetRecordMax(string table, string field, string where)
        {
            int _max = 0;
            string sql = "select max(" + field + ") from " + table + " where 1=1 and " + where;
            if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out _max))
            {
                return _max;
            }
            else
            {
                return 0;
            }
        }

        #endregion

        #region GetRecordMin

        /// <summary>
        /// 得到指定表指定列最小值
        /// </summary>
        /// <param name="table">表名称</param>
        /// <param name="field">列名称</param>
        /// <returns>最小值</returns>
        public static int GetRecordMin(string table, string field)
        {
            int _min = 0;
            string sql = "select min(" + field + ") from " + table;
            if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out _min))
            {
                return _min;
            }
            else
            {
                return 0;
            }
        }

        /// <summary>
        /// 得到指定表指定列最小值
        /// </summary>
        /// <param name="table">表名称</param>
        /// <param name="field">列名称</param>
        /// <param name="where">过滤条件</param>
        /// <returns>最小值</returns>
        public static int GetRecordMin(string table, string field, string where)
        {
            int _min = 0;
            string sql = "select min(" + field + ") from " + table + " where 1=1 and " + where;
            if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out _min))
            {
                return _min;
            }
            else
            {
                return 0;
            }
        }

        #endregion

        #region GetRecordAvg

        /// <summary>
        /// 得到指定表指定列平均值
        /// </summary>
        /// <param name="table">表名称</param>
        /// <param name="field">列名称</param>
        /// <returns>平均值</returns>
        public static int GetRecordAvg(string table, string field)
        {
            int _avg = 0;
            string sql = "select avg(" + field + ") from " + table;
            if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out _avg))
            {
                return _avg;
            }
            else
            {
                return 0;
            }
        }

        /// <summary>
        /// 得到指定表指定列平均值
        /// </summary>
        /// <param name="table">表名称</param>
        /// <param name="field">列名称</param>
        /// <param name="where">过滤条件</param>
        /// <returns>平均值</returns>
        public static int GetRecordAvg(string table, string field, string where)
        {
            int _avg = 0;
            string sql = "select avg(" + field + ") from " + table + " where 1=1 and " + where;
            if (int.TryParse(SqlHelper.ExecuteScalar(sql).ToString(), out _avg))
            {
                return _avg;
            }
            else
            {
                return 0;
            }
        }

        #endregion
    }
}


 

 

posted on 2013-08-19 19:19  风言枫语  阅读(164)  评论(0编辑  收藏  举报