Microsoft Enterprise Library 5.0 calls the MYSQL paging stored procedure

Source: Internet
Author: User

1. You need to complete two preconditions before you can use Microsoft Enterprise Library 5.0 to call the MYSQL stored procedure

Microsoft Enterprise Library 5.0 supports MYSQL

MYSQL Paging Stored Procedure


2. Need to add a class that inherits the Iparametermapper interface to assign query parameters

Using system.data;using system.data.common;using microsoft.practices.enterpriselibrary.data;using Grass.Extend; namespace grass.mysqldal{//<summary>/////</summary> public class Mydbparametermapper:ipara Metermapper {//<summary>///instantiation parameter Assignment class instance///</summary>//<param name= "pars" > Parameter name array </    Param> public Mydbparametermapper (params idataparameter[] pars) {m_pars = pars;    } private idataparameter[] m_pars = null;    Public DbCommand CMD {set; get;} <summary>////Assign query Parameters///</summary>//<param name= "command" > Query Command Object </param>/// Lt;param name= "parametervalues" > Parameter objects </param> public void assignparameters (DbCommand command, object[]      parametervalues) {Cmd = command; if (!parametervalues.isnullordbnull () && parametervalues.length>0) M_pars = parametervalues as IDataPara      Meter[];      if (M_pars = = null) return; //Input parameter if (!m_pars. Isnullordbnull ()) command.    Parameters.addrange (M_pars); }  }}

3. Performing a paging stored procedure

    [TestMethod] public void Testexecstoreprocedure () {#region input parameter list<mysqlparameter> parameters      = new List<mysqlparameter> (); Query column parameters. ADD (new Mysqlparameter {mysqldbtype = Mysqldbtype.varchar, parametername = @ "_fields", Value =      "Order_no,order_date,order_type", Size = 2000}); Query table parameters. ADD (new Mysqlparameter {mysqldbtype = mysqldbtype.text, parametername = "_tables", Val      UE = "' Order '", Size = 0}); Query condition parameters. ADD (new Mysqlparameter {mysqldbtype = Mysqldbtype.varchar, parametername = "_where", Value = "1      =1 ", Size = 2000}); Collation parameters. ADD (new Mysqlparameter {mysqldbtype = Mysqldbtype.varchar, parametername = "_orderby", Value =      "Order_no asc", Size = 200}); Query the page number parameters.   ADD (New Mysqlparameter {     Mysqldbtype = mysqldbtype.int32, parametername = "_pageindex", Value = 1, Size = 8}); Number of records per page parameters. ADD (new Mysqlparameter {mysqldbtype = mysqldbtype.int32, parametername = "_pagesize", Value = 5      , Size = 8}); The sum field, separated by commas, with parameters. ADD (new Mysqlparameter {mysqldbtype = Mysqldbtype.varchar, parametername = "_sumfields", Value      = "Order_no,order_no,order_no", Size = 200}); #endregion #region Output parameter//total record number parameters.  ADD (new Mysqlparameter {mysqldbtype = mysqldbtype.int32, parametername = "_totalcount", Value =      0, Direction = parameterdirection.output, Size = 8}); Total pages parameters. ADD (new Mysqlparameter {mysqldbtype = mysqldbtype.int32, parametername = "_pagecount", Value =      0, Direction = parameterdirection.output, Size = 8}); //sum structure, the values are separated by commas with parameters. ADD (new Mysqlparameter {mysqldbtype = Mysqldbtype.varchar, parametername = "_sumresult", Value      = 0, Direction = parameterdirection.output, Size = 2000}); #endregion//define query parameters mydbparametermapper param = new Mydbparametermapper (parameters.      ToArray ());      Executes the stored procedure orderdal dal = new Orderdal ();//That is Mysqldatabase object encapsulation//Where dbbase = (Database) mysqldatabase; var accessor = dal.      Dbbase.createsprocaccessor<ordermodel> ("Sp_mvccommondatasource", param); ilist<ordermodel> pinfo = new list<ordermodel> (accessor.      Execute ()); Gets the output parameter 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>


Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.