企业库EnterpriseLibrary学习笔记之--通过企业库Microsoft.Practices.EnterpriseLibrary,实现调用存储过程的封装

来源:互联网 发布:淘宝考试答案50题 编辑:程序博客网 时间:2024/06/05 02:01

实例:通过企业库Microsoft.Practices.EnterpriseLibrary,在System.Data.DbCommand对象中内置存储对象

     步骤:

     1、添加企业库的dll文件:Microsoft.Practices.EnterpriseLibrary.Data.DLL....,需自己从网上下

     2、例子为通过 Microsoft.Practices.EnterpriseLibrary.Data.Database中含有的方法,在DbCommand实现了ASP调用存储过程很好的封装,最终返回一个内置存储调用的DBCommand方法。

     3、例子供大家学习

 
       具体代码:
      

public class DBCommand
{
        //企业数据库对象
        private static Microsoft.Practices.EnterpriseLibrary.Data.Database db;
        //内置存储过程对象
        private readonly System.Data.Common.DbCommand dbCommand;

        /// <summary>
        /// 创建企业数据库对象
        /// </summary>
        private static void CreateDataBase()
        {
           
            DBCommand.db = DatabaseFactory.CreateDatabase("Data Source=(local);Initial Catalog=chenyun;Integrated Security=True");
        }

        /// <summary>
        /// 实例化存储过程对象
        /// </summary>
        /// <param name="dbCommandNameOrSqlString">存储过程名</param>
        public DBCommad(string dbCommandNameOrSqlString)
        {
            if (db == null)
                CreateDataBase();
            dbCommand = db.GetStoredProcCommand(dbCommandNameOrSqlString);
        }

        /// <summary>
        /// 创建存储过程
        /// </summary>
        /// <param name="dbCommandName">存储过程名</param>
        /// <returns>数据库命令对象</returns>
        public static DBCommand CreateStoredProcCommand(string dbCommandName)
        {
            var cmd = new DBCommand(dbCommandName);
            return cmd;
        }

        #region 为存储过程添加参数

        /// <summary>
        /// 增加输入参数
        /// </summary>
        /// <param name="paraName">参数名</param>
        /// <param name="paraDbType">参数类型</param>
        /// <param name="paraValue">参数值</param>
        public void AddInParameter(string paraName, DbType paraDbType, object paraValue)
        {
            db.AddInParameter(this.dbCommand, paraName, paraDbType, paraValue);
        }

        /// <summary>
        /// 增加输出参数
        /// </summary>
        /// <param name="paraName">参数名</param>
        /// <param name="paraDbType">参数类型</param>
        /// <param name="size">参数大小</param>
        public void AddOutParameter(string paraName, DbType paraDbType, int size)
        {
            db.AddOutParameter(this.dbCommand, paraName, paraDbType, size);
        }

        #endregion

        #region 执行存储过程并返回结果的方法
        /// <summary>
        /// 执行存储过程返回DbDataReader结果
        /// </summary>
        /// <returns>结果读取器</returns>
        public IDataReader ExecuteReader()
        {
            try
            {
                return DBCommand.db.ExecuteReader(this.dbCommand);
            }
            catch
            {
                CreateDataBase();
                return DBCommand.db.ExecuteReader(this.dbCommand);
            }
        }

        #endregion
}

原创粉丝点击