zoukankan      html  css  js  c++  java
  • asp.net my sqlHelper

      private static readonly string connString;
            static SqlHelper()
            {
                var conn = ConfigurationManager.ConnectionStrings["connStr"];
                if (conn != null)
                    connString = conn.ConnectionString;
            }
    
            #region MyRegion 查询方法 + GetTable(string sql, CommandType type, params SqlParameter[] pars)
            /// <summary>
            /// 查询方法
            /// </summary>
            /// <param name="sql">sql语句</param>
            /// <param name="type">类型:存储过程 OR 字符串?</param>
            /// <param name="pars">参数列表</param>
            /// <returns></returns>
            public static DataTable GetTable(string sql, CommandType type, params SqlParameter[] pars)
            {
                using (SqlConnection conn = new SqlConnection(connString))
                {
                    using (SqlDataAdapter apter = new SqlDataAdapter(sql, conn))
                    {
                        apter.SelectCommand.CommandType = type;
                        if (pars != null)
                        {
                            apter.SelectCommand.Parameters.AddRange(pars);
                        }
                        DataTable da = new DataTable();
                        apter.Fill(da);
                        return da;
                    }
                }
            }
    
            #endregion
    
            #region 查询方法,默认命令类型:字符串 +static DataTable GetTable(string sql, params SqlParameter[] pars)
            /// <summary>
            /// 查询方法,默认类型:字符串
            /// </summary>
            /// <param name="sql">sql语句</param>
            /// <param name="pars">参数列表</param>
            /// <returns></returns>
            public static DataTable GetTable(string sql, params SqlParameter[] pars)
            {
                return GetTable(sql, CommandType.Text, pars);
            }
            #endregion
    
            #region 查询方法 + static SqlDataReader ExecuteReader(string sql, CommandType type, SqlParameter[] pars)
            /// <summary>
            /// 执行一个查询的T-SQL语句, 返回一个SqlDataReader对象
            /// </summary>
            /// <param name="sql">要执行的T-SQL语句</param>
            /// <param name="type">命令类型</param>
            /// <param name="pars">参数列表</param>
            /// <returns>SqlDataReader对象</returns>
            public static SqlDataReader ExecuteReader(string sql, CommandType type, SqlParameter[] pars)
            {
                using (SqlConnection conn = new SqlConnection(connString))
                {
                    using (SqlCommand cmd = new SqlCommand(sql, conn))
                    {
                        if (pars != null)
                        {
                            cmd.Parameters.AddRange(pars);
                        }
                        cmd.CommandType = type;
                        if (conn.State != ConnectionState.Open)
                            conn.Open();
                        SqlDataReader reader = cmd.ExecuteReader();
                        return reader;
    
                    }
                }
            }
            #endregion
    
    
            #region  查询方法 默认命令类型:字符串 +  static SqlDataReader ExecuteReader(string sql, params SqlParameter[] parameters) 
            /// <summary>
            /// 执行一个查询的T-SQL语句, 返回一个SqlDataReader对象
            /// </summary>
            /// <param name="sql">要执行的T-SQL语句</param>
            /// <param name="parameters">参数列表</param>
            /// <returns>SqlDataReader对象</returns>
            public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] parameters)
            {
                return ExecuteReader(sql, CommandType.Text, parameters);
            }
            #endregion
    
            #region 修改、添加、删除方法 +ExecuteNonquery(string sql, CommandType type, params SqlParameter[] pars)
            /// <summary>
            /// 修改、添加、删除方法
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="type"></param>
            /// <param name="pars"></param>
            /// <returns></returns>
            public static int ExecuteNonquery(string sql, CommandType type, params SqlParameter[] pars)
            {
                using (SqlConnection conn = new SqlConnection(connString))
                {
                    using (SqlCommand cmd = new SqlCommand(sql, conn))
                    {
                        cmd.CommandType = type;
                        if (pars != null)
                            cmd.Parameters.AddRange(pars);
    
                        if (conn.State != ConnectionState.Open)
                            conn.Open();
    
                        return cmd.ExecuteNonQuery();
                    }
                }
            }
            #endregion
    
            #region 修改、添加、删除方法,默认字符串 + static int ExecuteNonquery(string sql, params SqlParameter[] pars)
            /// <summary>
            /// 修改、添加、删除方法,默认字符串
            /// </summary>
            /// <param name="sql"></param>
            /// <param name="pars"></param>
            /// <returns></returns>
            public static int ExecuteNonquery(string sql, params SqlParameter[] pars)
            {
                return ExecuteNonquery(sql, CommandType.Text, pars);
            }
            #endregion
    
            #region ExecuteScalar +static object ExecuteScalar(string cmdText, CommandType type, params SqlParameter[] parameters)
            /// <summary>
            /// 执行一个查询的T-SQL语句,返回第一行第一列的结果
            /// </summary>
            /// <param name="cmdText">要执行的T-SQL语句</param>
            /// <param name="type">命令类型</param>
            /// <param name="parameters">参数列表</param>
            /// <exception cref="链接数据库异常"></exception>
            /// <returns>返回第一行第一列的数据</returns>
            public static object ExecuteScalar(string cmdText, CommandType type, params SqlParameter[] parameters)
            {
                using (SqlConnection conn = new SqlConnection(connString))
                {
                    using (SqlCommand cmd = new SqlCommand(cmdText, conn))
                    {
                        if (parameters != null)
                        {
                            cmd.Parameters.Clear();
                            cmd.Parameters.AddRange(parameters);
                        }
                        cmd.CommandType = type;
                        try
                        {
                            conn.Open();
                            object res = cmd.ExecuteScalar();
                            cmd.Parameters.Clear();
                            return res;
                        }
                        catch (System.Data.SqlClient.SqlException e)
                        {
                            conn.Close();
                            throw e;
                        }
                    }
                }
            }
            #endregion
    
            #region ExecuteScalar +static object ExecuteScalar(string cmdText, params SqlParameter[] parameters)
            /// <summary>
            /// 执行一个查询的T-SQL语句,返回第一行第一列的结果
            /// </summary>
            /// <param name="cmdText">要执行的T-SQL语句</param>
            /// <param name="parameters">参数列表</param>
            /// <exception cref="链接数据库异常"></exception>
            /// <returns>返回第一行第一列的数据</returns>
            public static object ExecuteScalar(string cmdText, params SqlParameter[] parameters)
            {
                return ExecuteScalar(cmdText, CommandType.Text, parameters);
            }
            #endregion
    
            #region 公共方法
            #region  将一个SqlDataReader转换为实体类对象 +  static TEntity MapEntity<TEntity>(SqlDataReader reader) where TEntity : class, new()
            /// <summary>
            /// 将一个SqlDataReader转换为实体类对象
            /// </summary>
            /// <typeparam name="TEntity">实体类型</typeparam>
            /// <param name="reader">当前指向的reader</param>
            /// <returns>实体对象</returns>
            public static TEntity MapEntity<TEntity>(SqlDataReader reader) where TEntity : class, new()
            {
                try
                {
                    var props = typeof(TEntity).GetProperties();
                    var entity = new TEntity();
                    foreach (var prop in props)
                    {
                        if (prop.CanWrite)
                        {
                            try
                            {
                                var index = reader.GetOrdinal(prop.Name);
                                var data = reader.GetValue(index);
                                if (data != DBNull.Value)
                                {
                                    prop.SetValue(entity, Convert.ChangeType(data, prop.PropertyType), null);
                                }
                            }
                            catch (IndexOutOfRangeException)
                            {
                                continue;
                            }
                        }
                    }
                    return entity;
                }
                catch
                {
                    return null;
                }
            }
            #endregion
    
    
            #region 将dataTable转换为实体 + static List<TEntity> MapEntity<TEntity>(DataTable table) where TEntity : class, new()
            /// <summary>
            /// 将dataTable转换为实体
            /// </summary>
            /// <typeparam name="TEntity"></typeparam>
            /// <param name="table"></param>
            /// <returns></returns>
            public static List<TEntity> MapEntity<TEntity>(DataTable table) where TEntity : class, new()
            {
                try
                {
                    List<TEntity> Entitys = new List<TEntity>();
                    if (table.Rows.Count == 0)
                        return Entitys;
    
                    var props = typeof(TEntity).GetProperties();
                    foreach (DataRow dr in table.Rows)
                    {
                        var entity = new TEntity();
                        foreach (var prop in props)
                        {
                            if (prop.CanWrite && table.Columns.Contains(prop.Name))
                            {
                                var value = dr[prop.Name];
                                if (value != DBNull.Value)
                                {
                                    prop.SetValue(entity, Convert.ChangeType(value, prop.PropertyType), null);
                                }
                            }
                        }
                        Entitys.Add(entity);
                    }
                    return Entitys;
                }
                catch
                {
                    return null;
                }
    
            }
            #endregion
            #endregion
    
            #region 判断某张表的某个字段是否存在某个值 +  static bool ColumnExistsValue(string table, string column, string value)
            /// <summary>
            /// 判断某张表的某个字段是否存在某个值
            /// </summary>
            /// <param name="table">表名称</param>
            /// <param name="column">列名称</param>
            /// <param name="value">要判断的值</param>
            /// <returns>是否存在</returns>
            public static bool ColumnExistsValue(string table, string column, string value)
            {
                string sql = "SELECT count(1) FROM [" + table + "] WHERE [" + column + "] =@Value;";
                object res = ExecuteScalar(sql, new SqlParameter("@Value", value));
                if (res == null)
                {
                    return false;
                }
                return Convert.ToInt32(res) > 0;
            }
    
            #endregion
    
            #region 构建分页查询
            /// <summary>
            /// 构建分页的T-SQL语句
            /// </summary>
            /// <param name="page"></param>
            /// <param name="rows"></param>
            /// <param name="sql"></param>
            /// <returns></returns>
            public static string CreateQuerySql(int? page, int? rows, StringBuilder sbSql)
            {
                int? iBeginIndex = 1;
                int? iEndIndex = 1;
                string strPageWhere = string.Empty;
                StringBuilder sbSqlPager = null;
                try
                {
                    sbSqlPager = new StringBuilder();
                    page = page == null ? 1 : page;
                    rows = rows == null ? 20 : rows;
                    iBeginIndex = (page - 1) * rows + 1;
                    iEndIndex = (page) * rows;
                    strPageWhere = "where t.SN between " + iBeginIndex + " and " + iEndIndex;
                    sbSqlPager.AppendLine("select * from (");
                    sbSqlPager.AppendLine(sbSql.ToString());
                    sbSqlPager.AppendLine(")t " + strPageWhere);
                }
                catch
                {
                    sbSqlPager = sbSql;
                }
                return sbSqlPager.ToString();
    
            } 
            #endregion
  • 相关阅读:
    2013软考最新大纲
    安卓的第二堂课
    安卓第一堂课
    VS2010的快捷键;VS2012变化的快捷键
    漂亮的表格样式大全
    ASCII说明和ASCII对照表
    Cookie学习笔记
    JavaScript实现功能全集
    1073-成绩排名
    1071-数字的空洞
  • 原文地址:https://www.cnblogs.com/sjyzz/p/8085053.html
Copyright © 2011-2022 走看看