微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐