如何从单个存储过程返回多个结果?

时间:2013-11-14 06:47:48

标签: c# asp.net sql-server sql-server-2008 sql-server-2005

我在一个过程中从两个或多个表中获取所选行的列表。 如何将结果返回到c#代码中进行处理。

例如。在这里我得到2组结果enter image description here

2 个答案:

答案 0 :(得分:1)

非常容易。如果您的sp再返回一个记录集,您可以这样做:

IDataReader rd =null;//todo:
do
{
    while (rd.Read())
    {
        ///todo:
    }
} while (rd.NextResult());

答案 1 :(得分:1)

使用DataSet从存储过程中获取多个表。您需要在存储过程中使用多个select语句。

using (SqlConnection conn = new SqlConnection(connection))
{
    DataSet dataset = new DataSet();
    SqlDataAdapter adapter = new SqlDataAdapter();
    adapter.SelectCommand = new SqlCommand("YourStoredProcedure", conn);
    adapter.SelectCommand.CommandType = CommandType.StoredProcedure;
    adapter.Fill(dataset);
    return dataset;
}