首页 > 学院 > 开发设计 > 正文

ADO.NET之常用功能的封装

2019-11-17 02:14:45
字体:
来源:转载
供稿:网友

ADO.NET之常用功能的封装

  一、连接字符串(使用配置文件)

  添加对 System.Configuration的引用,并且在封装类中引入该namespace

        /// <summary>        /// 功能:读取配置文件中的连接字符串        /// 返回值类型:string        /// </summary>        /// <param name="conName">参数:配置文件中的连接字符串名称</param>        /// <returns>返回值:string 连接字符串</returns>        public static string GetConnectString(string conName)        {            try            {                return ConfigurationManager.ConnectionStrings[conName].ConnectionString;            }            catch (Exception e)            {                throw e;            }        }

  二、SqlConnection对象

        /// <summary>        /// 功能:根据给定的连接字符串创建一个SqlConnection对象        /// 返回类型:SqlConnection        /// </summary>        /// <param name="conStr">参数:连接字符串</param>        /// <returns>返回值:SqlConnection对象</returns>        public static SqlConnection GetConnect(string conStr)        {            return new SqlConnection(conStr);        }
        /// <summary>        /// 功能:打开数据库连接        /// </summary>        /// <param name="Con">参数:SqlConnection对象</param>        public static void OpenDBConnet(SqlConnection Con)        {            try            {                if (Con.State == ConnectionState.Open)                {                    return;                }                else                {                    Con.Open();                }            }            catch (SqlException e)            {                throw e;            }        }
        /// <summary>        /// 功能:关闭数据库连接        /// </summary>        /// <param name="Con">参数:SqlConnection对象</param>        public static void CloseDBConnect(SqlConnection Con)        {            try            {                if (Con.State == ConnectionState.Closed)                {                    return;                }                else                {                    Con.Close();                }            }            catch (SqlException e)            {                throw e;            }        }

  三、同步操作数据库

  SqlDataReader对象 

        /// <summary>        /// 功能:执行存储过程并返回一个SqlDataReader对象        /// </summary>        /// <param name="sql">参数:存储过程名</param>        /// <param name="Con">参数:SqlConnection对象</param>        /// <param name="parameters">参数:SqlParameter参数数组</param>        /// <returns>返回值:SqlDataReader对象</returns>        public static SqlDataReader GetSdrBySp(string sql, SqlConnection Con, params SqlParameter[] parameters)        {            SqlCommand Cmd = null;            try            {                Cmd = new SqlCommand(sql, Con);                DBHelper.OpenDBConnet(Con);                Cmd.CommandType = CommandType.StoredPRocedure;                foreach (SqlParameter parameter in parameters)                {                    Cmd.Parameters.Add(parameter);                }            }            catch (SqlException s)            {                throw s;            }            return Cmd.ExecuteReader(CommandBehavior.CloseConnection);        }
        /// <summary>        /// 功能:执行T-SQL语句语句并返回一个SqlDataReader对象        /// </summary>        /// <param name="sql">参数:T-SQL语句</param>        /// <param name="Con">参数:SqlConnection对象</param>        /// <param name="parameters">参数:SqlParameter参数数组</param>        /// <returns>返回值:SqlDataReader对象</returns>        public static SqlDataReader GetSdrByTSql(string sql, SqlConnection Con, params SqlParameter[] parameters)        {            SqlCommand Cmd = null;            try            {                Cmd = new SqlCommand(sql, Con);                DBHelper.OpenDBConnet(Con);                Cmd.CommandType = CommandType.Text;                foreach (SqlParameter parameter in parameters)                {                    Cmd.Parameters.Add(parameter);                }            }            catch (SqlException s)            {                throw s;            }            return Cmd.ExecuteReader(CommandBehavior.CloseConnection);        }

  ExecuteNonQuery

        /// <summary>        /// 功能:执行存储过程返回受影响的行数        /// 返回类型:int        /// </summary>        /// <param name="sql">参数:存储过程名</param>        /// <param name="Con">参数:SqlConnection对象</param>        /// <param name="parameters">参数:SqlParameter参数数组</param>        /// <returns>返回值:int 受影响的行数</returns>        public static int GetEnqBySp(string sql, SqlConnection Con, params SqlParameter[] parameters)        {            SqlCommand Cmd = null;            try            {                Cmd = new SqlCommand(sql, Con);                DBHelper.OpenDBConnet(Con);                Cmd.CommandType = CommandType.StoredProcedure;                foreach (SqlParameter parameter in parameters)                {                    Cmd.Parameters.Add(parameter);                }            }            catch (SqlException s)            {                throw s;            }            return Cmd.ExecuteNonQuery();        }
        /// <summary>        /// 功能:执行T-SQL语句返回受影响的行数        /// </summary>        /// <param name="sql">参数:T-SQL语句</param>        /// <param name="Con">参数:SqlConnection对象</param>        /// <param name="parameters">参数:SqlParameter参数数组</param>        /// <returns>返回值:int 受影响的行数</returns>        public static int GetEnqByTSql(string sql, SqlConnection Con, params SqlParameter[] parameters)        {            SqlCommand Cmd = null;            try            {                Cmd = new SqlCommand(sql, Con);                DBHelper.OpenDBConnet(Con);                Cmd.CommandType = CommandType.Text;                foreach (SqlParameter parameter in parameters)                {                    Cmd.Parameters.Add(parameter);                }            }            catch (SqlException s)            {                throw s;            }            return Cmd.ExecuteNonQuery();        }

  ExecuteScalar

        /// <summary>        /// 功能:通过T-SQl语句执行SqlCommand的ExecuteScalar()方法返回object类型对象        /// </summary>        /// <param name="sql">参数:T-SQL语句</param>        /// <param name="Con">参数:SqlConnection对象</param>        /// <param name="parameters">参数:SqlParameter参数数组</param>        /// <returns>返回值:object对象</returns>        public static object GetEScalarByTSql(string sql, SqlConnection Con, params SqlParameter[] parameters)        {            SqlCommand Cmd = null;            try            {                Cmd = new SqlCommand(sql, Con);                DBHelper.OpenDBConnet(Con);                Cmd.CommandType = CommandType.Text;                foreach (SqlParameter parameter in parameters)                {                    Cmd.Parameters.Add(parameter);                }            }            catch (SqlException s)            {                throw s;            }            return Cmd.ExecuteScalar();        }
        /// <summary>        /// 功能:通过执行T-SQL语句返回一个DataSet数据集对象        /// </summary>        /// <param name="sql">参数:T-SQL语句</param>        /// <param name="tableName">参数:DataSet表名</param>        /// <param name="Con">参数:SqlConnection对象</param>        /// <param name="parameters">参数:可变SqlParameter参数数组</param>        /// <returns>返回值:DataSet数据集对象</returns>        public static DataSet GetDsByTSql(string sql, string tableName, SqlConnection Con, params SqlParameter[] parameters)        {            SqlCommand Cmd = null;            DataSet Ds = null;            SqlDataAdapter Sda = null;            try            {                Ds = new DataSet(tableName);                Cmd = new SqlCommand(sql, Con);                DBHelper.OpenDBConnet(Con);                Cmd.CommandType = CommandType.Text;
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表