C# 调用SQL中的存储过程中有output参数,存储过程执行过程中返回信息

CREATE PROCEDURE sp_AccountRole_Create
@CategoryID int,@RoleName nvarchar(10),@Description nvarchar(50),@RoleID int output
AS
DECLARE @Count int
-- 查找是否有相同名称的记录
SELECT @Count = Count(RoleID) FROM Account_Role WHERE
RoleName = @RoleName
IF @Count = 0
INSERT INTO Account_Role 
(CategoryID,RoleName,Description) valueS
(@CategoryID,@RoleName,@Description)
SET @RoleID = @@IDENTITY
RETURN 1
GO
SqlConnection DbConnection = new SqlConnection(mConnectionString);
SqlCommand command = new SqlCommand( "sp_AccountRole_Create",DbConnection );
DbConnection.Open(connectString);
// 废置SqlCommand的属性为存储过程
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add("@CategoryID",SqlDbType.Int,4);
command.Parameters.Add("@RoleName",SqlDbType.NVarChar,10);
command.Parameters.Add("@Description",50);
command.Parameters.Add("@RoleID",4);
// 返回值
command.Parameters.Add("Returnvalue",4,// Size
ParameterDirection.Returnvalue,false,// is nullable 
0,// byte precision
0,// byte scale
string.Empty,DataRowVersion.Default,null );
command.parameters["@CategoryID"].value = permission.CategoryID;
command.parameters["@RoleName"].value = permission.PermissionName;
command.parameters["@Description"].value = permission.Description;
// 可以返回新的ID值
command.parameters["@RoleID"].Direction = ParameterDirection.Output;
int rowsAffected = command.ExecuteNonQuery();
int result = command.parameters["Returnvalue"].value;
int newID = command.parameters["@RoleID"].value;
command.parameters["Returnvalue"].value 存储过程的返回值

相关文章

项目中经常遇到CSV文件的读写需求,其中的难点主要是CSV文件...
简介 本文的初衷是希望帮助那些有其它平台视觉算法开发经验的...
这篇文章主要简单记录一下C#项目的dll文件管理方法,以便后期...
在C#中的使用JSON序列化及反序列化时,推荐使用Json.NET——...
事件总线是对发布-订阅模式的一种实现,是一种集中式事件处理...
通用翻译API的HTTPS 地址为https://fanyi-api.baidu.com/api...