Stored procedures 我们能否在存储过程中返回多个结果集,以及如何在.net中处理它

Stored procedures 我们能否在存储过程中返回多个结果集,以及如何在.net中处理它,stored-procedures,Stored Procedures,我们能否在存储过程中返回多个结果集,以及如何在.net中处理它 ??? 如果是,如何?? 如果没有,为什么不?? 请解释一下,有一些很好的例子 您需要更改连接字符串以支持它MultipleActiveResultSets=True 用于配置设置 有一些很好的例子 您需要更改连接字符串以支持它MultipleActiveResultSets=True 用于配置设置 如果使用DataReader检索数据,则可以使用NextResult方法迭代存储过程返回的多个结果集。可以找到更多信息 以下代码是MS

我们能否在存储过程中返回多个结果集,以及如何在.net中处理它

??? 如果是,如何?? 如果没有,为什么不?? 请解释一下,有一些很好的例子

您需要更改
连接字符串
以支持它
MultipleActiveResultSets=True

用于配置设置

有一些很好的例子

您需要更改
连接字符串
以支持它
MultipleActiveResultSets=True


用于配置设置

如果使用DataReader检索数据,则可以使用NextResult方法迭代存储过程返回的多个结果集。可以找到更多信息 以下代码是MSDN中的一个简单示例:

static void RetrieveMultipleResults(SqlConnection connection)
{
    using (connection)
    {
        SqlCommand command = new SqlCommand(
          "SELECT CategoryID, CategoryName FROM dbo.Categories;" +
          "SELECT EmployeeID, LastName FROM dbo.Employees",
          connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        while (reader.HasRows)
        {
            Console.WriteLine("\t{0}\t{1}", reader.GetName(0),
                reader.GetName(1));

            while (reader.Read())
            {
                Console.WriteLine("\t{0}\t{1}", reader.GetInt32(0),
                    reader.GetString(1));
            }
            reader.NextResult();
        }
    }
}

如果要从DataAdapter填充数据集,请注意,如果DataAdapter遇到多个结果集,它将创建多个数据表(每个结果集一个),并将它们添加到结果数据集中。

如果要使用DataReader检索数据,您可以使用NextResult方法迭代存储过程返回的多个结果集。可以找到更多信息 以下代码是MSDN中的一个简单示例:

static void RetrieveMultipleResults(SqlConnection connection)
{
    using (connection)
    {
        SqlCommand command = new SqlCommand(
          "SELECT CategoryID, CategoryName FROM dbo.Categories;" +
          "SELECT EmployeeID, LastName FROM dbo.Employees",
          connection);
        connection.Open();

        SqlDataReader reader = command.ExecuteReader();

        while (reader.HasRows)
        {
            Console.WriteLine("\t{0}\t{1}", reader.GetName(0),
                reader.GetName(1));

            while (reader.Read())
            {
                Console.WriteLine("\t{0}\t{1}", reader.GetInt32(0),
                    reader.GetString(1));
            }
            reader.NextResult();
        }
    }
}

如果您是从DataAdapter填充数据集,请注意,如果DataAdapter遇到多个resultset,它将创建多个DataTables(每个resultset一个)并将它们添加到结果数据集中。

我猜谷歌搜索和自我探索这项技术会节省更多时间,让你有更多的了解:-)我猜谷歌搜索和自我探索这项技术会节省更多时间,让你有更多的了解:-)你不需要启用火星。net已经能够处理多个结果集,永远不需要启用MARS。net已经能够永远处理多个结果集