最近一直在写API调用WinForm实现分页,怎么搞也没有搞出来,研究半天,竟然在无意间想出来怎么实现分页功能,通过各种方法去实现分页。
API里面的分页步骤:
第一步:
我是利用的三层来完成的,在视图模型里面创建好对象的类
第二步:
在DAL层里面创建一个存放MySQL的文件,调用MyDBHelper层(注意:要修改你的数据库名还有Root和你的MySQL密码)
分页代码如下:
public MovieList ShowPage(int index,int size,int fid=0,string name="")
{
MySqlParameter[] mySqlParameters = new MySqlParameter[]
{ //第一个参数是你的数据库参数,第二个是类型,第三个就是你要传的值
new MySqlParameter(){ ParameterName="pindex",MySqlDbType=MySqlDbType.Int32,Value=index},
new MySqlParameter(){ ParameterName="psize",MySqlDbType=MySqlDbType.Int32,Value=size},
new MySqlParameter(){ ParameterName="pcount",MySqlDbType=MySqlDbType.Int32,Direction=ParameterDirection.Output},
new MySqlParameter(){ ParameterName="fid",MySqlDbType=MySqlDbType.Int32,Value=fid},
new MySqlParameter(){ ParameterName="mname",MySqlDbType=MySqlDbType.VarChar,Value=name},
};
//通过集合来接收MyDBHelper里面的GetList集合(第一个参数是你的存储过程名,第二个是MySqlParameter名字)
List<Movie> movies =MyDBHelper.GetList<Movie>("P_Page",mySqlParameters);
MovieList movieList = new MovieList()
{
Movie = movies, //分页后存入的数据
Count =Convert.ToInt32(mySqlParameters[2].Value) //求得的总记录数
};
//返回List集合
return movieList;
}
第三步:
复制粘贴到BLL层并返回到UI层里面
第四步:
UI层直接调用BLL层分页方法