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