我们可以在存储过程中返回多个结果集以及如何在.net
中处理它??? 如果是的话? 如果没有,为什么不? 请解释
答案 0 :(得分:3)
如果使用DataReader检索数据,则可以使用NextResult方法迭代存储过程返回的多个结果集。可以找到更多信息here. 以下代码是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遇到多个结果集,它将创建多个DataTable(每个结果集一个)并将它们添加到生成的DataSet中。
答案 1 :(得分:0)
http://msdn.microsoft.com/en-us/library/yf1a7f4f.aspx有一些很好的例子。
您需要更改connectionString
以支持它。 MultipleActiveResultSets=True
http://msdn.microsoft.com/en-us/library/h32h3abf.aspx用于配置设置;