• 权限管理页面管理


    在Project中,实现权限管理,首先要管理好需要权限控制的页面,因此,我们可以在SQL Server建立一个表[Pages]来存储页面。
    下面为表[pages]结构,可参考:

    代码
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE TABLE [dbo].[Pages](
        
    [PagesId] [int] IDENTITY(1,1NOT NULL,
        
    [PagesName] [nvarchar](1000NOT NULL,  
        
    [SecurityTypeId] [tinyint] NOT NULL,--可选字段,Page所属类别
        [Description] [nvarchar](150NULL,
     
    CONSTRAINT [PK__Pages__5070F446] PRIMARY KEY CLUSTERED 
    (
        
    [PagesId] ASC
    )
    WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ONON [PRIMARY]
    ON [PRIMARY]

    GO

    ALTER TABLE [dbo].[Pages]  WITH CHECK ADD  CONSTRAINT [FK_Pages_SecurityType] FOREIGN KEY([SecurityTypeId])
    REFERENCES [dbo].[SecurityType] ([SecurityTypeId])
    ON UPDATE CASCADE
    GO

    ALTER TABLE [dbo].[Pages] CHECK CONSTRAINT [FK_Pages_SecurityType]
    GO

      

    建立插入存储过程usp_Pages_Insert:

    代码
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE     PROCEDURE [dbo].[usp_Pages_Insert]
    (
        
    @PagesName nvarchar(1000),
        
    @SecurityTypeId tinyint,
        
    @Description nvarchar(50)
    )
    AS    
    SELECT [PagesName] FROM [Pages] WHERE [PagesName]=@PagesName
    IF @@ROWCOUNT>0
    BEGIN
        
    RAISERROR(N'此页面已经存在,无法添加!',16,1)
        
    RETURN
    END
    ELSE

      
    BEGIN TRANSACTION
            
    DECLARE @err int
                
    INSERT INTO dbo.Pages([PagesName],[Description],[SecurityTypeId]VALUES (@PagesName,@Description,@SecurityTypeId)
            
    SET @err=@@ERROR
            
    IF @err<>0    
            
    BEGIN
        
    ROLLBACK TRANSACTION        
            
    END
            
        
    COMMIT TRANSACTION
    GO

      

    建立更新存储程usp_Pages_Updatge:

    代码
    SET ANSI_NULLS ON
    GO

    SET QUOTED_IDENTIFIER ON
    GO

    CREATE  PROCEDURE [dbo].[usp_Pages_Update]
    (
    @ID tinyint,
    @PagesName nvarchar(1000),
    @SecurityTypeId tinyint,
    @Description nvarchar(50)
    )
    AS    
     
    SELECT [PagesName] FROM [Pages] WHERE [PagesName]=@PagesName AND [PagesId] <> @ID
    IF @@ROWCOUNT>0
    BEGIN
        
    RAISERROR(N'此页面已经存在,无法更新!',16,1)
        
    RETURN
    END
    ELSE

      
    BEGIN TRANSACTION
            
    DECLARE @err int
                
    UPDATE [Pages] SET [PagesName] = @PagesName,[Description] = @Description,[SecurityTypeId] = @SecurityTypeId WHERE [PagesId] = @ID
            
    SET @err=@@ERROR
            
    IF @err<>0    
            
    BEGIN
        
    ROLLBACK TRANSACTION        
            
    END
            
        
    COMMIT TRANSACTION

    GO

      

    下面示图为页面管理介面:

  • 相关阅读:
    PHP WAMP关闭notice等提示
    PowerDesigner 逆向工程 从SQL文件转换成PDM 从PDM转成CDM
    Servlet 各种path路径比较
    数据库一对一的两种关联 主键关联和外键关联
    Java Timer定时器
    VS2010彻底卸载
    VS2010每次编译都重新编译整个工程的解决方案
    DbgPrint/KdPrint输出格式控制
    error TRK0002: Microsoft Visual Studio 10.0VCinlink.exe Access is denied.
    WinDbg F9时“code not found breakpoint not set”
  • 原文地址:https://www.cnblogs.com/insus/p/1776433.html
Copyright © 2020-2023  润新知