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
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();
- }
- }
- }
#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运行结果: