企业库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
}
步骤:
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
}
相关文章推荐
- {传智播客} (学习笔记)--Java调用存储过程实现Oracle数据库分页
- Angular2学习笔记.3、通过模板调用Controller事件实现用户输入和显示,UserInput
- c#学习之-c#通过sql存储过程实现分页
- 调用存储过程,java中通过bboss persistent实现数据库存储过程的调用(位置变量绑定)
- 【学习】java下实现调用oracle的存储过程和函数
- MySQL存储过程和触发器的实现--数据库学习笔记
- C#开发学习笔记:C#通过存储过程创建数据表
- 存储过程调用,java中通过bboss persistent实现数据库存储过程的调用(命名变量绑定)
- MyCat 学习笔记 第十三篇.数据分片 之 通过HINT执行存储过程
- 【SQLSERVER学习笔记】分页存储过程+调用
- aswing学习笔记4-通过调用面板中的按钮实现主界面动态切换皮肤的问题!
- Mybatis学习笔记-调用存储过程
- oracle 最简单的学习笔记,增删改查,PLSQL基本语法,游标,函数,存储过程的实现
- 数据库学习第二季第五集:编程语言的存储过程和函数机制及其编程语言的调用学习总结
- 数据结构学习笔记-线性表链式存储(C语言实现)
- Oracle 数据库存储过程学习笔记
- Deep Q-Network 学习笔记(一)—— Q-Learning 学习与实现过程中碰到的一些坑
- SQL查询的艺术学习笔记--存储过程与函数
- WF实例学习笔记:(2)通过Workflow 调用 WCF Data Services 获取数据
- SQL SERVER 存储过程学习笔记