存储过程返回多个结果

问题描述:

我有一个称为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