C#调用SQL Server参数过程传参
-SQL SERVER生成测试环境:
Create database Test; go USE [Test] 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 ) GO SET IDENTITY_INSERT [dbo].[Tab2] ON GO INSERT [dbo].[Tab2] ([ID], [TabID], [Name2]) VALUES (1, 245575913, N'ID') GO INSERT [dbo].[Tab2] ([ID], [TabID], [Name2]) VALUES (2, 245575913, N'name') GO INSERT [dbo].[Tab2] ([ID], [TabID], [Name2]) VALUES (3, 277576027, N'ID') GO INSERT [dbo].[Tab2] ([ID], [TabID], [Name2]) VALUES (4, 277576027, N'Name2') GO INSERT [dbo].[Tab2] ([ID], [TabID], [Name2]) VALUES (5, 277576027, N'TabID') GO SET IDENTITY_INSERT [dbo].[Tab2] OFF GO if OBJECT_ID('P2','P') is not null drop procedure P2 go Create procedure P2 ( @StartID int, @EndID int, @Rowcount int output ) as select * from Tab2 where ID between @StartID and @EndID set @Rowcount=@@ROWCOUNT go
--打开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 TestExecute { class Program { static void Main(string[] args) { SqlConnection thisConnection = new SqlConnection(@"Server=(Local);Database=Test;User ID=sa;Password=1"); thisConnection.Open(); SqlCommand thisCommand = thisConnection.CreateCommand(); thisCommand.CommandType = CommandType.StoredProcedure; thisCommand.CommandText = "P2"; IDataParameter[] parameters = { new SqlParameter("@StartID",SqlDbType.Int), new SqlParameter("@EndID",SqlDbType.Int), new SqlParameter("@Rowcount",SqlDbType.Int), new SqlParameter("return_value",SqlDbType.Int) }; parameters[0].Value = "1"; parameters[1].Value = "5"; parameters[2].Direction = ParameterDirection.Output; parameters[3].Direction = ParameterDirection.ReturnValue; thisCommand.Parameters.AddRange(parameters); thisCommand.ExecuteNonQuery(); thisConnection.Close(); Console.WriteLine("@Rowcount:{0}\nReturn_value:{1}",parameters[2].Value,parameters[3].Value); Console.ReadKey(); } } }
--按F5运行结果: