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