微软企业库5.0 调用 MySql 分页存储过程
来源:互联网 发布:p2p网络摄像机怎么用 编辑:程序博客网 时间:2024/05/16 01:59
1.需要完成两个前置条件后才可以使用 微软企业库5.0 调用 MySql 存储过程
微软企业库5.0 支持 MySql
MySql 分页存储过程
2.需要添加一个继承 IParameterMapper 接口的类分配查询参数
using System.Data;using System.Data.Common;using Microsoft.Practices.EnterpriseLibrary.Data;using Grass.Extend;namespace Grass.MySqlDal{ /// <summary> /// 分配查询参数 /// </summary> public class MyDbParameterMapper : IParameterMapper { /// <summary> /// 实例化参数分配类实例 /// </summary> /// <param name="pars">参数名数组</param> public MyDbParameterMapper(params IDataParameter[] pars) { m_pars = pars; } private IDataParameter[] m_pars = null; public DbCommand Cmd { set; get; } /// <summary> /// 分配查询参数 /// </summary> /// <param name="command">查询命令对象</param> /// <param name="parameterValues">参数对象</param> public void AssignParameters(DbCommand command, object[] parameterValues) { Cmd = command; if (!parameterValues.IsNullOrDbNull() && parameterValues.Length>0) m_pars = parameterValues as IDataParameter[]; if (m_pars == null) return; //输入参数 if(!m_pars.IsNullOrDbNull()) command.Parameters.AddRange(m_pars); } }}
3.执行分页存储过程
[TestMethod] public void TestExecStoreProcedure() { #region 输入参数 List<MySqlParameter> parameters = new List<MySqlParameter>(); //查询列 parameters.Add(new MySqlParameter { MySqlDbType = MySqlDbType.VarChar, ParameterName = @"_fields", Value = "order_no,order_date,order_type", Size = 2000 }); //查询表 parameters.Add(new MySqlParameter { MySqlDbType = MySqlDbType.Text, ParameterName = "_tables", Value = "`order`", Size = 0 }); //查询条件 parameters.Add(new MySqlParameter { MySqlDbType = MySqlDbType.VarChar, ParameterName = "_where", Value = "1=1", Size = 2000 }); //排序规则 parameters.Add(new MySqlParameter { MySqlDbType = MySqlDbType.VarChar, ParameterName = "_orderby", Value = "order_no asc", Size = 200 }); //查询页码 parameters.Add(new MySqlParameter { MySqlDbType = MySqlDbType.Int32, ParameterName = "_pageindex", Value = 1, Size = 8 }); //每页记录数 parameters.Add(new MySqlParameter { MySqlDbType = MySqlDbType.Int32, ParameterName = "_pagesize", Value = 5, Size = 8 }); //求和字段,使用逗号分隔 parameters.Add(new MySqlParameter { MySqlDbType = MySqlDbType.VarChar, ParameterName = "_sumfields", Value = "order_no,order_no,order_no", Size = 200 }); #endregion #region 输出参数 //总记录数 parameters.Add(new MySqlParameter { MySqlDbType = MySqlDbType.Int32, ParameterName = "_totalcount", Value = 0, Direction = ParameterDirection.Output, Size = 8 }); //总页数 parameters.Add(new MySqlParameter { MySqlDbType = MySqlDbType.Int32, ParameterName = "_pagecount", Value = 0, Direction = ParameterDirection.Output, Size = 8 }); //求和结构,值之间使用逗号分隔 parameters.Add(new MySqlParameter { MySqlDbType = MySqlDbType.VarChar, ParameterName = "_sumResult", Value = 0, Direction = ParameterDirection.Output, Size = 2000 }); #endregion //定义查询参数 MyDbParameterMapper param = new MyDbParameterMapper(parameters.ToArray()); //执行存储过程 OrderDal dal = new OrderDal();//即 MySqlDatabase 对象的封装 //其中 DbBase = (Database)MySqlDatabase; var accessor = dal.DbBase.CreateSprocAccessor<OrderModel>("sp_MvcCommonDataSource", param); IList<OrderModel> pinfo = new List<OrderModel>(accessor.Execute()); //获取输出参数 object totalcount = param.Cmd.Parameters["_totalcount"].Value; object pagecount = param.Cmd.Parameters["_pagecount"].Value; object sumResult = param.Cmd.Parameters["_sumResult"].Value; Assert.IsNotNull(pinfo); }
</pre><pre>
0 0
- 微软企业库5.0 调用 MySql 分页存储过程
- 微软企业库5.0 支持 MySql
- 微软企业库调用Oracle存储过程返回(1个或多个)数据集
- 微软企业库调用Oracle存储过程返回(1个或多个)数据集
- 微软企业库调用Oracle存储过程返回(1个或多个)数据集
- 企业库是如何调用存储过程的
- JAVA调用MYSQL存储过程实现分页
- MySQL分页存储过程及其调用
- 微软企业库 接收 存储过程返回的多个值
- EnterpriseLibrary 微软企业库 使用存储过程,参数及事务
- 分页存储过程调用
- 企业库EnterpriseLibrary学习笔记之--通过企业库Microsoft.Practices.EnterpriseLibrary,实现调用存储过程的封装
- mysql 分页存储过程
- MySQL 分页存储过程
- MySql分页存储过程
- MySql分页存储过程
- MySql分页存储过程
- MySql分页存储过程
- 网站在线客服系统
- Numpy 入门教程(1)
- 第四讲:实体联系模型
- Go's power is in emergent behavior
- void glutInitWindowPosition(int x, int y);设置初始窗口的位置
- 微软企业库5.0 调用 MySql 分页存储过程
- bzoj1113[Poi2008]海报PLA
- oracle11g2连接myeclipse10方法
- java中String的split()方法
- linux SHELL 编程基础知识(2)
- volatile关键字和原子操作的区别
- 分层窗口(layeredwindows)
- Collection中的基本方法
- 将Sublime Text 2搭建成一个好用的IDE