zoukankan      html  css  js  c++  java
  • c#简单的SQLHelp

    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
        }
  • 相关阅读:
    Python 字符串和list的功能翻译
    python .strip()
    python 查看对象功能
    python 字典
    洛谷 P1144 最短路计数 Label:水
    心疼自己,再见
    初赛复习 //附复习资料
    51Nod 1079 中国剩余定理 Label:数论
    转载 乘法逆元
    51Nod 1136 欧拉函数 Label:数论
  • 原文地址:https://www.cnblogs.com/yzw-carrie/p/5543138.html
Copyright © 2011-2022 走看看