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 存储过程的返回值

相关文章

目录简介使用JS互操作使用ClipLazor库创建项目使用方法简单测...
目录简介快速入门安装 NuGet 包实体类User数据库类DbFactory...
本文实现一个简单的配置类,原理比较简单,适用于一些小型项...
C#中Description特性主要用于枚举和属性,方法比较简单,记录...
[TOC] # 原理简介 本文参考[C#/WPF/WinForm/程序实现软件开机...
目录简介获取 HTML 文档解析 HTML 文档测试补充:使用 CSS 选...