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}\nTable Rows:{1}",thisDataSet.Tables[0].TableName, thisDataSet.Tables[0].Rows.Count); Console.WriteLine("Table Name:{0}\nTable Rows:{1}", thisDataSet.Tables[1].TableName, thisDataSet.Tables[1].Rows.Count); } thisConnection.Close(); Console.ReadKey(); } } }
----按F5运行结果: