这个Dino Esposito讲关于datagrid自定分页的存储过程,但是它返回多个记录集,问题如果我用SqlDataReader来读的话怎样把多个记录集合并为一个记录集,或都DataSet都可以,这样datagrid就可以直接设置数据源
if exists(select * from sysobjects where name='FetchEmployeesByPage' and type='P')
Drop Procedure FetchEmployeesByPage
GoCreate proc FetchEmployeesByPage(
@PageIndex smallint,@RecordsPerPage smallint
)
As
-- @PageIndex,页面索引
-- @RecordsPerPage,每页的记录数
Declare @MyIndex smallint
Declare @FirstRecPos smallint
Set @FirstRecPos = (@PageIndex-1) * @RecordsPerPage + 1 --cursor
Declare employees_cursor scroll cursor for
select * from tbproducts --open cursor
open employees_cursor --fetch the first record
fetch absolute @FirstRecPos From employees_cursor --
set @MyIndex = 1
while @@FETCH_STATUS = 0 and @myIndex < @RecordsPerPage
Begin
fetch next from employees_cursor
set @MyIndex = @MyIndex + 1
End Close employees_cursor
deallocate employees_cursor
GO
if exists(select * from sysobjects where name='FetchEmployeesByPage' and type='P')
Drop Procedure FetchEmployeesByPage
GoCreate proc FetchEmployeesByPage(
@PageIndex smallint,@RecordsPerPage smallint
)
As
-- @PageIndex,页面索引
-- @RecordsPerPage,每页的记录数
Declare @MyIndex smallint
Declare @FirstRecPos smallint
Set @FirstRecPos = (@PageIndex-1) * @RecordsPerPage + 1 --cursor
Declare employees_cursor scroll cursor for
select * from tbproducts --open cursor
open employees_cursor --fetch the first record
fetch absolute @FirstRecPos From employees_cursor --
set @MyIndex = 1
while @@FETCH_STATUS = 0 and @myIndex < @RecordsPerPage
Begin
fetch next from employees_cursor
set @MyIndex = @MyIndex + 1
End Close employees_cursor
deallocate employees_cursor
GO
解决方案 »
- 我这里正常,客户点击保存按钮报错
- 大家有人用win7么 我有个小问题大家给我看一下
- calendar控件有没有按年、周和日模式显示的功能???
- 中国最牛B的特警(不精采你砍我)
- 急!在线等,有没有人用过加亮显示代码的编辑器啊
- 关于分页的一个问题,很烦人,asp.net分页,又想用控件,又不想用,用了控件怎么在需要的记录上加连接并且传的参数是该条记录的id,
- 编程实现虚拟目录变成一个web应用程序...
- 如何在iframe中动态添加table控件
- 散分:数据库查询问题
- 工作觉得没有滋味,散分.
- 请各位兄弟前来相助!wingate造成session混乱?cookieless=false时session也混乱!
- 烦死了!!用dreamweave设计了一下页面,然后在vs.net里面给该页面插web控件,死活都弄不好!!
<asp:datagrid id="dg" runat="server">
</asp:datagrid>
<script language="c#" runat-"server">
void LoadData()
{
...
//...
}
</script>
public DataTable ConvertMultiRecordsToTable(DataTable dt,SqlDataReader dr,int RecordsNumber)
{
for(int i=0;i<dr.FieldCount;i++)
{
DataColumn myColumn = new DataColumn();
myColumn.DataType = dr.GetFieldType(i);
myColumn.ColumnName = dr.GetName(i);
dt.Columns.Add(myColumn);
}
DataRow myRow;
for(int j=0;j<RecordsNumber;j++)
{
dr.Read();
myRow = dt.NewRow();
for(int i=0;i<dr.FieldCount;i++)
myRow[i]=dr.GetValue(i);
dt.Rows.Add(myRow);
dr.NextResult();
}
return dt;
}
将有多个记录集的datareader转成datatable 这样datagrid就可以直接绑定了