zoukankan      html  css  js  c++  java
  • 权限管理页面管理

    在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

      

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

  • 相关阅读:
    101. Symmetric Tree
    mfc实现对话框全屏置顶显示
    qq截图原理
    给对话框添加颜色
    mfc设置半透明对话框
    API介绍
    列表控件学习1
    VC++、MFC
    vs2010 产品密钥
    VS2008 视图资源.rc无法加载的问题及解决方法
  • 原文地址:https://www.cnblogs.com/insus/p/1776433.html
Copyright © 2011-2022 走看看