码迷,mamicode.com
首页 > 数据库 > 详细

c#简单的SQLHelp

时间:2016-05-30 17:15:06      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:

public abstract class SQLHelper
    {
        //只读的静态数据库连接字符串
        //需添加引用System.Configuration;
        public static readonly string connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

        //public static readonly string connString = "server=.;database=Weight;uid=sa;pwd=1";

        #region 执行 增 删 改
        /// <summary>
        /// 执行 增 删 改
        /// </summary>
        /// <param name="sql">要执行的SQL</param>
        /// <param name="param">参数</param>
        /// <returns>影响行数</returns>
        public static int ExecuteNonQuery(string sql, params SqlParameter[] param)
        {
            //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭
            using (SqlConnection conn = new SqlConnection(connString))
            {
                //实例化命令对象,指定sql,与连接对象
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    //如果有参数
                    if (param != null)
                    {
                        //批量添加参数
                        cmd.Parameters.AddRange(param);
                    }
                    //打开连接
                    conn.Open();
                    //执行sql并返回影响行数
                    return cmd.ExecuteNonQuery();
                }
            }
        }

        /// <summary>
        /// 返回首行首列对象
        /// </summary>
        /// <param name="sql">要执行的SQL</param>
        /// <param name="param">参数</param>
        /// <returns>首行首列对象</returns>
        public static object ExecuteScalar(string sql, params SqlParameter[] param)
        {
            //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭
            using (SqlConnection conn = new SqlConnection(connString))
            {
                //实例化命令对象,指定sql,与连接对象
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    //如果有参数
                    if (param != null)
                    {
                        //批量添加参数
                        cmd.Parameters.AddRange(param);
                    }
                    //打开连接
                    conn.Open();
                    //执行sql并返回影响行数
                    return cmd.ExecuteScalar();
                }
            }
        }
        #endregion

        #region 执行 查询
        /// <summary>
        /// 执行 查询
        /// </summary>
        /// <param name="sql">要执行的SQL</param>
        /// <param name="param">参数</param>
        /// <returns>数据集</returns>
        public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] param)
        {
            //实例化连接对象,并指定连接字符串
            SqlConnection conn = new SqlConnection(connString);
            //实例化命令对象,指定sql,与连接对象
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                //如果有参数
                if (param != null)
                {
                    //批量添加参数
                    cmd.Parameters.AddRange(param);
                }
                //打开连接
                conn.Open();
                //执行sql并返回一个只进只读保持SQL连接的结果集,如果将返回的SqlDataReader关闭时也将关闭连接
                return cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
        }
        #endregion

        #region 完成数据的查询,返回DataTable
        /// <summary>
        /// 完成数据的查询,返回DataTable
        /// </summary>
        /// <param name="sql">要执行的sql</param>
        /// <param name="param">参数</param>
        /// <returns>DataTable</returns>
        public static DataTable GetTable(string sql, params SqlParameter[] param)
        {
            //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭
            using (SqlConnection conn = new SqlConnection(connString))
            {
                //数据适配器
                SqlDataAdapter adp = new SqlDataAdapter(sql, conn);
                if (param != null)
                {
                    //批量添加参数
                    adp.SelectCommand.Parameters.AddRange(param);
                }
                //填充并返回数据表
                DataTable dt = new DataTable();
                adp.Fill(dt);
                return dt;
            }
        }
        #endregion

        #region 根据sql获得List集合
        /// <summary>
        /// 根据sql获得List集合
        /// </summary>
        public static List<T> GetList<T>(String sql, params SqlParameter[] param)
            where T : class,new()
        {
            List<T> entities = new List<T>();

            using (SqlDataReader sdr = SQLHelper.ExecuteReader(sql))
            {
                while (sdr.Read())
                {
                    T entity = new T();
                    //获得当前实体类型信息
                    Type type = typeof(T);
                    //遍历结果集中的每一列
                    for (int i = 0; i < sdr.FieldCount; i++)
                    {
                        //获得列名
                        String columnName = sdr.GetName(i);
                        //根据列名取得属性信息
                        PropertyInfo property = type.GetProperty(columnName);
                        //如果当前列的值为null则跳过
                        if (!(sdr.GetValue(i) is DBNull))
                        {
                            //给属性赋值
                            property.SetValue(entity, sdr.GetValue(i), null);
                        }
                    }
                    entities.Add(entity);
                }
            }

            return entities;
        }
        #endregion
    }

 

public abstract class SQLHelper    {        //只读的静态数据库连接字符串        //需添加引用System.Configuration;        public static readonly string connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
        //public static readonly string connString = "server=.;database=Weight;uid=sa;pwd=1";
        #region 执行 增 删 改        /// <summary>        /// 执行 增 删 改        /// </summary>        /// <param name="sql">要执行的SQL</param>        /// <param name="param">参数</param>        /// <returns>影响行数</returns>        public static int ExecuteNonQuery(string sql, params SqlParameter[] param)        {            //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭            using (SqlConnection conn = new SqlConnection(connString))            {                //实例化命令对象,指定sql,与连接对象                using (SqlCommand cmd = new SqlCommand(sql, conn))                {                    //如果有参数                    if (param != null)                    {                        //批量添加参数                        cmd.Parameters.AddRange(param);                    }                    //打开连接                    conn.Open();                    //执行sql并返回影响行数                    return cmd.ExecuteNonQuery();                }            }        }
        /// <summary>        /// 返回首行首列对象        /// </summary>        /// <param name="sql">要执行的SQL</param>        /// <param name="param">参数</param>        /// <returns>首行首列对象</returns>        public static object ExecuteScalar(string sql, params SqlParameter[] param)        {            //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭            using (SqlConnection conn = new SqlConnection(connString))            {                //实例化命令对象,指定sql,与连接对象                using (SqlCommand cmd = new SqlCommand(sql, conn))                {                    //如果有参数                    if (param != null)                    {                        //批量添加参数                        cmd.Parameters.AddRange(param);                    }                    //打开连接                    conn.Open();                    //执行sql并返回影响行数                    return cmd.ExecuteScalar();                }            }        }        #endregion
        #region 执行 查询        /// <summary>        /// 执行 查询        /// </summary>        /// <param name="sql">要执行的SQL</param>        /// <param name="param">参数</param>        /// <returns>数据集</returns>        public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] param)        {            //实例化连接对象,并指定连接字符串            SqlConnection conn = new SqlConnection(connString);            //实例化命令对象,指定sql,与连接对象            using (SqlCommand cmd = new SqlCommand(sql, conn))            {                //如果有参数                if (param != null)                {                    //批量添加参数                    cmd.Parameters.AddRange(param);                }                //打开连接                conn.Open();                //执行sql并返回一个只进只读保持SQL连接的结果集,如果将返回的SqlDataReader关闭时也将关闭连接                return cmd.ExecuteReader(CommandBehavior.CloseConnection);            }        }        #endregion
        #region 完成数据的查询,返回DataTable        /// <summary>        /// 完成数据的查询,返回DataTable        /// </summary>        /// <param name="sql">要执行的sql</param>        /// <param name="param">参数</param>        /// <returns>DataTable</returns>        public static DataTable GetTable(string sql, params SqlParameter[] param)        {            //实例化连接对象,并指定连接字符串,自动释放资源,不用关闭            using (SqlConnection conn = new SqlConnection(connString))            {                //数据适配器                SqlDataAdapter adp = new SqlDataAdapter(sql, conn);                if (param != null)                {                    //批量添加参数                    adp.SelectCommand.Parameters.AddRange(param);                }                //填充并返回数据表                DataTable dt = new DataTable();                adp.Fill(dt);                return dt;            }        }        #endregion
        #region 根据sql获得List集合        /// <summary>        /// 根据sql获得List集合        /// </summary>        public static List<T> GetList<T>(String sql, params SqlParameter[] param)            where T : class,new()        {            List<T> entities = new List<T>();
            using (SqlDataReader sdr = SQLHelper.ExecuteReader(sql))            {                while (sdr.Read())                {                    T entity = new T();                    //获得当前实体类型信息                    Type type = typeof(T);                    //遍历结果集中的每一列                    for (int i = 0; i < sdr.FieldCount; i++)                    {                        //获得列名                        String columnName = sdr.GetName(i);                        //根据列名取得属性信息                        PropertyInfo property = type.GetProperty(columnName);                        //如果当前列的值为null则跳过                        if (!(sdr.GetValue(i) is DBNull))                        {                            //给属性赋值                            property.SetValue(entity, sdr.GetValue(i), null);                        }                    }                    entities.Add(entity);                }            }
            return entities;        }        #endregion    }

c#简单的SQLHelp

标签:

原文地址:http://www.cnblogs.com/yzw-carrie/p/5543138.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!