删除用户前逻辑判断,检查当前用户是否关联业务数据或创建业务数据
删除用户前逻辑判断,检查当前用户是否关联业务数据或创建业务数据
我们设计的业务系统,在删除用户前必须检查当前用户是否关联业务数据、是否创建业务数据,若有关联业务数据是不可删除用户的,并且要有提示,如下图: 【系统管理】-->【用户管理】-->【删除】按钮。 有2种解决方案仅供参考: 1. 在删除操作的存储过程中进行逻辑判断,若有关联业务数据,抛出异常。 2. 在删除按钮事件中判断,调用判断逻辑,若有关联业务数据,退出操作。 下面提供在删除操作的存储过程中进行逻辑判断: DAL层调用删除用户的存储过程: C# Code: /// <summary> /// 删除用户 /// </summary> /// <param name="account">帐号</param> /// <returns></returns> public bool DeleteUser(string account) { CommandHelper sp = _Database.CreateSqlProc("usp_DeleteUser"); sp.AddParam("@Account", DbType.String, account); sp.AddParam("@DataSetID", DbType.String, _Loginer.DBID); int i = _Database.ExecuteCommand(sp.Command); return i != 0; } //来源:C/S框架网 | www.csframework.com | QQ:23404761 删除用户的存储过程: SQL Code: ALTER PROCEDURE [dbo].[usp_DeleteUser] @Account VARCHAR(30),--用户帐号(登陆账号) @DataSetID VARCHAR(30)--帐套编号 as BEGIN /************************************************************ 功能:删除用户,包括组的用户,应用角色的用户 SELECT * FROM dbo.tb_DataSet SELECT * FROM dbo.tb_MyUser SELECT * FROM dbo.tb_MyGroupUser SELECT * FROM dbo.tb_MyUserRoles usp_DeleteUser 'admin','BusinessDB' *************************************************************/ DECLARE @MSG NVARCHAR(200) --检查当前用户是否创建业务数据 IF NN_OMS_Business.dbo.ufn_IsUserUsed(@Account)>0 BEGIN SELECT @MSG='当前用户关联业务数据,不可删除!'; RAISERROR (@MSG,16,1); RETURN; END ELSE BEGIN --删除用户 DELETE FROM tb_MyUser WHERE Account=@Account --删除用户组 DELETE FROM tb_MyGroupUser WHERE Account=@Account AND DataSetID=@DataSetID --删除用户权限 DELETE FROM tb_MyUserRoles WHERE Account=@Account AND DataSetID=@DataSetID END; END //来源:C/S框架网 | www.csframework.com | QQ:23404761 统计当前用户创建业务单据的数量: SQL Code: ALTER FUNCTION ufn_IsUserUsed ( @UserID VARCHAR(50) ) RETURNS INT AS BEGIN /*********************************************************** 程序说明:统计当前用户创建的业务单据 SELECT dbo.ufn_IsUserUsed('admin') ************************************************************/ --统计当前用户创建的业务单据 DECLARE @Count INT SELECT @Count= --报价单 (SELECT COUNT(1) FROM tb_QO WHERE CreatedBy=@UserID)+ --形式发票 (SELECT COUNT(1) FROM tb_PI WHERE CreatedBy=@UserID)+ --客人发票 (SELECT COUNT(1) FROM tb_IV WHERE CreatedBy=@UserID)+ --付款单 (SELECT COUNT(1) FROM tb_PM WHERE CreatedBy=@UserID) RETURN @Count END; //来源:C/S框架网 | www.csframework.com | QQ:23404761 扫一扫加微信:
参考文档:
判断当前用户对某个按钮有访问权限 使用触发器控制用户删除业务往来中使用的基础资料 SQL Server 判断是否存在数据库,表,列,视图 SQL查看当前数据库所有请求的情况,包括登录用户,登录时间,连接数目 开发技巧:删除资料保存日志并检查数据是否能删除 CSFramework.WebApi开发框架模拟Web用户端登录、调用WebApi接口增删改查数据 SQL UPDATE语句关联表值函数(CROSS APPLY)关联更新数据 SQL存储过程:删除基础资料前逻辑判断,检查是否有关联业务数据 当前比较流行的几种WebApi接口数据交换格式 SQL用户添加用户角色db_owner提示用户组或角色在当前数据库中已存在 C# LINQ使用Distinct方法检查对象某个属性的值是否重复 C#根据字节数据byte[]前2位判断文本文件的Encoding编码格式 删除数据库备份文件存储过程:p_DeleteBakFiles C#正则表达式判断url是否网络路径(http/ftp/https三种协议) SQL 查询当前数据库的用户表或视图 sysobjects.xtype in (U,V)
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |