当前位置:Gxlcms > 数据库问题 > c#简单的SQLHelp

c#简单的SQLHelp

时间:2021-07-01 10:21:17 帮助过:3人阅读

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

标签:

人气教程排行