C# 读取在存储过程多结果集

--SQL Server 测试环境搭建:

Create database Test; 
go
USE [Test]
GO
if OBJECT_ID('Tab','U') is not null
	drop table Tab
go
CREATE TABLE [dbo].[Tab](
	[ID] [int] identity(1,1) NOT NULL,
	[name] [sysname] NOT NULL,
)
go
if OBJECT_ID('Tab2','U') is not null
	drop table Tab2
go
CREATE TABLE [dbo].[Tab2](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[TabID] [int] NOT NULL,
	[Name2] [nvarchar](50) NULL
) ON [PRIMARY]
GO

--创建存储过程:

if OBJECT_ID('P3','P') is not null
	drop procedure P3
go
create procedure P3
as
select * from Tab;
select * from Tab2;

--打开Visual Studio—创建项目—选择【控制台应用程序】

#region Using Directives
using System;
using System.Data;
using System.Data.SqlClient;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
#endregion

namespace TestReadingStoreProc
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnection thisConnection = new SqlConnection(@"Server=(Local);Database=Test;User ID=sa;Password=1");  
            SqlCommand thisCommand = thisConnection.CreateCommand();
            thisCommand.CommandType = CommandType.StoredProcedure;
            thisCommand.CommandText = "P3";
            SqlDataAdapter thisAdapter = new SqlDataAdapter(thisCommand);
            DataSet thisDataSet = new DataSet();
            thisAdapter.Fill(thisDataSet);
            if (thisDataSet.Tables.Count > 0)
            {
                Console.WriteLine("Table Name:{0}
Table Rows:{1}",thisDataSet.Tables[0].TableName, thisDataSet.Tables[0].Rows.Count);
                Console.WriteLine("Table Name:{0}
Table Rows:{1}", thisDataSet.Tables[1].TableName, thisDataSet.Tables[1].Rows.Count);
            }
            thisConnection.Close();
            Console.ReadKey();
        }
    }
}



----按F5运行结果:

原文地址:https://www.cnblogs.com/Roy_88/p/5463037.html