您的位置:首页 > 其它

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

2012-05-17 15:28 726 查看
实例:通过企业库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

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐