java webservice分页_c#下asp.net调用webservice实现分页

在webservice服务器程序:

[WebMethod]

public int countuserpwd(string exec)

{

this.sqlConnection1.Open();

this.sqlDataAdapter1.SelectCommand.CommandText=exec;

DataSet ds1=new DataSet();

this.sqlDataAdapter1.Fill(ds1,"userpwd");

int a=int.Parse(ds1.Tables["userpwd"].Rows[0][0].ToString());

return a;

}

[WebMethod]

public DataSet selectuserpwd(String exec,int i,int j)

{

//exec表示sql,i表示当前,j表示一页显示多少

DataSet ds=new DataSet();

//this.sqlConnection1.Open();

//this.sqlSelectCommand1=new SqlCommand(exec,this.sqlConnection1);

this.sqlDataAdapter1.SelectCommand.CommandText=exec;

this.sqlDataAdapter1.Fill(ds,"userpwd");

int sum=ds.Tables["userpwd"].Rows.Count;

ds.Clear();

//计算

int onpage=i;//当前页

int pagesize=j;//每页显示数

int pagecount=(sum+pagesize-1)/pagesize;//共有页数

if(onpage==1&&onpage

{

startRecord=0;

endRecord=onpage*pagesize-1;

//显示第一页

}

if(onpage==pagecount&&onpage>1)

{

//显示最后一页

startRecord=(onpage-1)*pagesize;

endRecord=sum-1;

}

if(onpage>1&&onpage

{

//显示中间页

startRecord=(onpage-1)*pagesize;

endRecord=onpage*pagesize-1;

}

maxRecord=endRecord-startRecord+1;

this.sqlDataAdapter1.Fill(ds,startRecord,maxRecord,"userpwd");

return ds;

}

客户端调用:

...

private DataSet ds;

protected System.Web.UI.WebControls.Button first;

protected System.Web.UI.WebControls.Button preview;

protected System.Web.UI.WebControls.Button next;

protected System.Web.UI.WebControls.Button last;

private static int sum;//共记录

private static int onpage=0;//当前页

private static int pagesize=4;//每页显示记录

private static int pagecount;//页总数

private TableWebApplication1.localhost.Service1 mbi;

private static string exec;

....

private void Page_Load(object sender, System.EventArgs e)

{

// 在此处放置用户代码以初始化页面

mbi=new TableWebApplication1.localhost.Service1();

mbi.Credentials=System.Net.CredentialCache.DefaultCredentials;

}

#region Web 窗体设计器生成的代码

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。

//

InitializeComponent();

base.OnInit(e);

}

///

/// 设计器支持所需的方法 - 不要使用代码编辑器修改

/// 此方法的内容。

///

private void InitializeComponent()

{

this.last.Click += new System.EventHandler(this.last_Click);

this.next.Click += new System.EventHandler(this.next_Click);

this.preview.Click += new System.EventHandler(this.preview_Click);

this.first.Click += new System.EventHandler(this.first_Click);

this.Button1.Click += new System.EventHandler(this.Button1_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void Button1_Click(object sender, System.EventArgs e)

{

sum=mbi.countuserpwd("select count(*) from userpwd");

onpage=1;

pagecount=(sum+pagesize-1)/pagesize;

exec="select * from userpwd";

ds=mbi.selectuserpwd(exec,onpage,pagesize);

this.DataGrid1.DataSource=ds;

this.DataGrid1.DataBind();

}

private void first_Click(object sender, System.EventArgs e)

{

onpage=1;

//ds.Clear();

if(onpage==1)

{

this.next.Enabled=true;

this.last.Enabled=true;

this.first.Enabled=true;

this.preview.Enabled=false;

}

try

{

ds=mbi.selectuserpwd(exec,onpage,pagesize);

this.DataGrid1.DataSource=ds.Tables["userpwd"];

this.DataGrid1.DataBind();

}

catch

{}

}

private void preview_Click(object sender, System.EventArgs e)

{

onpage=onpage-1;

//ds.Clear();

if(onpage>1)

{

this.first.Enabled=true;

this.next.Enabled=true;

this.preview.Enabled=true;

this.last.Enabled=true;

}

if(onpage==1)

{

this.first.Enabled=true;

this.next.Enabled=true;

this.preview.Enabled=false;

this.last.Enabled=true;

}

try

{

ds=mbi.selectuserpwd(exec,onpage,pagesize);

this.DataGrid1.DataSource=ds.Tables["userpwd"];

this.DataGrid1.DataBind();

}

catch

{}

}

private void next_Click(object sender, System.EventArgs e)

{

onpage=onpage+1;

//ds.Clear();

if(onpage

{

this.first.Enabled=true;

this.next.Enabled=true;

this.preview.Enabled=true;

this.last.Enabled=true;

}

if(onpage==pagecount)

{

this.first.Enabled=true;

this.next.Enabled=false;

this.preview.Enabled=true;

this.last.Enabled=true;

}

try

{

ds=mbi.selectuserpwd(exec,onpage,pagesize);

this.DataGrid1.DataSource=ds.Tables["userpwd"];

this.DataGrid1.DataBind();

}

catch

{

}

}

private void last_Click(object sender, System.EventArgs e)

{

onpage=pagecount;

if(onpage==pagecount)

{

this.first.Enabled=true;

this.next.Enabled=false;

this.preview.Enabled=true;

this.last.Enabled=true;

}

ds=mbi.selectuserpwd(exec,onpage,pagesize);

this.DataGrid1.DataSource=ds.Tables["userpwd"];

this.DataGrid1.DataBind();

}

}

程序未优化,目的是为了减少大数量数据传输问题。

核心利用sqlDataAdapter的取数据集一段进行传输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值