使用SqlDataReader对象的NextResult方法读取存储过程多个结果集
先上效果图
简单的查询存储过程:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
-- =============================================
-- Author: <Author,Iceman>
-- Create date: <Create Date,2012-11-11>
-- Description: <Description,多数据集查询测试>
-- =============================================
CREATE
PROCEDURE
[dbo].[Iceman_MoreTableSelect_Test]
AS
BEGIN
SET
NOCOUNT
ON
;
select
top
10 a.art_Id,a.art_Subject,c.cate_UrlRewriter
from
Iceman_Article a,Iceman_Cates c
where
c.cate_Id= a.art_CateId
order
by
a.art_UploadDate
desc
select
top
10 news_Id,news_Subject
from
Iceman_News
order
by
news_Priority
desc
select
top
10 ppt_Id,ppt_Subject
from
Iceman_PPT
order
by
ppt_Priority
desc
END
GO
|
asp.net读取代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
private
void
ListBind() {
SqlDataReader sdr = SQLHelper.RunProcedure(
"Iceman_MoreTableSelect_Test"
,
null
);
//读取热点新闻结果集(第一个结果集)
while
(sdr.Read()) {
firstBuilder.Append(
"<li><a href='"
);
firstBuilder.Append(sdr[2].ToString() + sdr[0].ToString());
firstBuilder.AppendFormat(
".shtml'>{0}</a></li>"
, StrOperate.SubStr(sdr[1].ToString(), 12));
}
//读取最新文章结果集(第二个结果集)
if
(sdr.NextResult()) {
while
(sdr.Read()) {
secondBuilder.Append(
"<li><a href='"
);
secondBuilder.Append(sdr[0].ToString());
secondBuilder.AppendFormat(
".shtml'>{0}</a></li>"
, StrOperate.SubStr(sdr[1].ToString(), 12));
}
}
//读取PPT结果集(第二个结果集)
if
(sdr.NextResult()) {
while
(sdr.Read()) {
thirdBuilder.Append(
"<li><a href='"
);
thirdBuilder.Append(sdr[0].ToString());
thirdBuilder.AppendFormat(
".shtml'>{0}</a></li>"
, StrOperate.SubStr(sdr[1].ToString(), 18));
}
}
sdr.Dispose();
sdr.Close();
}
protected
StringBuilder firstBuilder =
new
StringBuilder();
protected
StringBuilder secondBuilder =
new
StringBuilder();
protected
StringBuilder thirdBuilder =
new
StringBuilder();
|
HTML显示代码:
1
2
3
4
5
6
7
8
9
10
11
12
|
<
fieldset
>
<
legend
>热点新闻</
legend
>
<
div
><
ul
><%= firstBuilder.ToString() %></
ul
></
div
>
</
fieldset
>
<
fieldset
>
<
legend
>最新文章</
legend
>
<
div
><
ul
><%= secondBuilder.ToString() %></
ul
></
div
>
</
fieldset
>
<
fieldset
>
<
legend
>PPT操作技巧</
legend
>
<
div
><
ul
><%= thirdBuilder.ToString() %></
ul
></
div
>
</
fieldset
>
|