为了账号安全,请及时绑定邮箱和手机立即绑定

权限管理----页面管理

标签:
SQL Server

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

代码

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Pages](
    [PagesId] [int] IDENTITY(1,1) NOT NULL,
    [PagesName] [nvarchar](1000) NOT NULL,  
    [SecurityTypeId] [tinyint] NOT NULL,--可选字段,Page所属类别
    [Description] [nvarchar](150) NULL,
 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  = ON) ON [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

  

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

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消