| 发表于:2007-03-22 10:19:41 楼主 |
分页存储过程: create procedure [getcustomersdatapage] @pageindex int, @pagesize int, @recordcount int out, @pagecount int out, @khlx int as select @recordcount = count(*) from customer set @pagecount = ceiling(@recordcount * 1.0 / @pagesize) declare @sqlstr nvarchar(1000) if @pageindex = 0 or @pagecount <= 1 set @sqlstr =n 'select top '+str( @pagesize )+ ' * from customer ,csort where customer.csort_id=csort.csort_id and csort.csort_id=@khlx order by customer.customer_id desc ' else if @pageindex = @pagecount - 1 set @sqlstr =n ' select * from ( select top '+str( @recordcount - @pagesize * @pageindex )+ ' * from customer ,csort where customer.csort_id=csort.csort_id and csort.csort_id=@khlx order by customer.customer_id asc ) temptable order by customer.customer_id desc ' else set @sqlstr =n ' select top '+str( @pagesize )+ ' * from ( select top '+str( @recordcount - @pagesize * @pageindex )+ ' * from customer ,csort where customer.csort_id=csort.csort_id and csort.csort_id=@khlx order by customer.customer_id asc ) temptable order by ccustomer.customer_id desc ' EXEC (@sqlstr) go 调用存储过程的代码: private static dataset getcustomersdata(int pageindex,int pagesize,ref int recordcount,ref int pagecount,int khlx) { sqlconnection conn=db.createconnection(); sqlcommand comm = new sqlcommand( "getcustomersdatapage ",conn); comm.parameters.add(new sqlparameter( "@pageindex ",sqldbtype.int)); comm.parameters[0].value = pageindex; comm.parameters.add(new sqlparameter( "@pagesize ",sqldbtype.int)); comm.parameters[1].value = pagesize; comm.parameters.add(new sqlparameter( "@recordcount ",sqldbtype.int)); comm.parameters[2].direction = parameterdirection.output; comm.parameters.add(new sqlparameter( "@pagecount ",sqldbtype.int)); comm.parameters[3].direction = parameterdirection.output; comm.parameters.add(new sqlparameter( "@khlx ",sqldbtype.int)); comm.parameters[4].value = khlx; comm.commandtype = commandtype.storedprocedure; sqldataadapter dataadapter = new sqldataadapter(comm); dataset ds = new dataset(); dataadapter.fill(ds); recordcount = (int)comm.parameters[2].value; pagecount = (int)comm.parameters[3].value; return ds; } 运行出错提示为:必须声明变量 '@khlx '。 请各位大虾帮忙指正。急急 |
|
|
|
|