存储过程返回多个结果 [英] Stored Procedure return multiple results
本文介绍了存储过程返回多个结果的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个称为EXEC的标准过程[usp_GetDetail]将返回多个结果.我需要使用不同的DataGrid在单个网页中显示这些不同的数据集.
I have a stord procedure called EXEC [usp_GetDetail] will return multiple results.I need to display those Different datasets in a single webpage using Different DataGrids.
推荐答案
如果要从该过程中接收多个结果集,则需要启用 MARS [ ^ ].然后,在读取数据时(例如,如果使用SqlDataReader),请使用 NextResult [ ^ ]进入结果.
If you''re going to receive multiple result set from the procedure you need to enable MARS[^]. Then when reading the data, if you use for example a SqlDataReader, use NextResult[^] to advance in the results.
.aspx
.aspx
<form id="form1" runat="server">
<div>
<asp:panel id="PanelResult" runat="server">
</asp:panel>
</div>
</form>
.aspx.cs
.aspx.cs
DataSet dsResult = getDataSet("EXEC usp_GetOwnerDetail;");
for (int intTables = 0; intTables < dsResult.Tables.Count; intTables++)
{
GridView gvTable = new GridView();
gvTable.ID = "gv" + intTables;
gvTable.DataSource = dsResult.Tables[intTables];
gvTable.DataBind();
PanelResult.Controls.Add(gvTable);
}
(如果您已经添加了网格视图控件)
然后将数据源设置为所有gridviews
if you have already added grid view control
then set datasource to all gridviews
DataSet dsResult = getDataSet("EXEC usp_GetOwnerDetail;");
GridView1.DataSource=dsResult.Tables[0];
GridView2.DataSource=dsResult.Tables[1];
GridView2.DataSource=dsResult.Tables[2];
Page.DataBind();
如果尚未添加,则
您可以在页面上添加GridView Direct
或在页面上创建一个asp:Panel并将所有网格添加到此面板
就像
余宇娜写
if you have not added then
You can add GridView Direct on page
or create a asp:Panel on Page and Add All Grids to this Panel
like
Una Yu write
这篇关于存储过程返回多个结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文