我有存储过程,它返回多个表作为结果集。我将它存储在 DataTable 中,并将该 DataTable 对象传递给另一个在我的网页中打印表格的表单。我的问题是如何将存储过程返回的多个 ResultSet 存储到 SINGLE DataTable 对象中,我可以将其返回到另一个函数。
public static DataTable[] getGraphData(Int32 type)
{
SqlConnection oConn = null;
DataSet dsReturn = null;
DataTable[] dtReturn=new DataTable[2];
try
{
getConnection(ref oConn, 1);
using (SqlStoredProcedure sspObj = new SqlStoredProcedure("dbo.usp_getGraphData", oConn, CommandType.StoredProcedure))
{
sspObj.AddParameterWithValue("@Type", SqlDbType.Int, 0, ParameterDirection.Input, type);
dsReturn = sspObj.ExecuteDataSet();
dtReturn[0] = dsReturn.Tables[0];
dtReturn[1] = dsReturn.Tables[1];
dtReturn[2] = dsReturn.Tables[2];
sspObj.Dispose();
}
closeConnection(ref oConn);
}
catch (Exception xObj)
{
//dtReturn[] = new DataTable();
}
return dtReturn;
}
获取所有三个数据表的函数
DataTable dtOutput = Generix.getGraphData(type);
如何从这里获取每个数据表?表示第 0 个元素到 dtOutput1 ,第一个元素到 dtOutput2 ..... 明智的