Chinaunix首页 | 论坛 | 博客
  • 博客访问: 819072
  • 博文数量: 756
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 4980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:40
文章分类

全部博文(756)

文章存档

2011年(1)

2008年(755)

我的朋友

分类:

2008-10-13 16:09:04


 Extracting Multiple Resultsets from a DataReader
 
// read the first resultset
reader = command.ExecuteReader();

// read the data from that resultset
while (reader.Read()) {
    suppliers = PopulateSuppliersFromIDataReader( reader );
}

// read the next resultset
reader.NextResult();

// read the data from that second resultset
while (reader.Read()) {
    products = PopulateProductsFromIDataReader( reader );
}

 Paging Through the Orders Table
 

CREATE PROCEDURE northwind_OrdersPaged
(
    @PageIndex int, 
    @PageSize int
)
AS
BEGIN
DECLARE @PageLowerBound int
DECLARE @PageUpperBound int
DECLARE @RowsToReturn int

-- First set the rowcount
SET @RowsToReturn = @PageSize * (@PageIndex + 1)
SET ROWCOUNT @RowsToReturn

-- Set the page bounds
SET @PageLowerBound = @PageSize * @PageIndex
SET @PageUpperBound = @PageLowerBound + @PageSize + 1

-- Create a temp table to store the select results
CREATE TABLE #PageIndex 
(
    IndexId int IDENTITY (1, 1) NOT NULL,
    OrderID int
)

-- Insert into the temp table
INSERT INTO #PageIndex (OrderID)
SELECT 
    OrderID
FROM 
    Orders
ORDER BY 
    OrderID DESC

-- Return total count
SELECT COUNT(OrderID) FROM Orders

-- Return paged results
SELECT 
    O.*
FROM 
    Orders O,
    #PageIndex PageIndex
WHERE 
    O.OrderID = PageIndex.OrderID AND
    PageIndex.IndexID > @PageLowerBound AND
    PageIndex.IndexID < @PageUpperBound
ORDER BY 
    PageIndex.IndexID

END


--------------------next---------------------

阅读(227) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~