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>