CSFrameworkV6 - Delete方法删除数据检查数据引用
CSFrameworkV6 - Delete方法删除数据检查数据引用
产品档案表定义了产品类别 CategoryId, 在删除产品类别前,后台检查是否有数据引用,被引用的数据不可删除,参考代码: C# Code: /// <summary> /// 删除产品类别 /// </summary> /// <param name="keyValue">主键</param> /// <returns></returns> public override bool Delete(string keyValue) { var obj = _Database.GetQueryable<dt_ProductCategory>().Where(w => w.isid == keyValue).FirstOrDefault(); if (obj != null) { //检查数据引用 var isReference = _Database.GetQueryable<dt_Product>().Any(a => a.CategoryId == obj.CategoryCode); if (isReference) throw new BizException("当前记录不可删除,产品资料已使用!"); //删除 var result = _Database.Remove<dt_ProductCategory>(obj) > 0; //数据日志 if (result) _Log.Log(DataLogType.delete, "删除资料", keyValue, _Loginer.Account, obj); return result; } else { throw new BizException("主键 <" + keyValue + "> 不存在,删除失败!"); } } //来源:C/S框架网 | www.csframework.com | QQ:23404761 界面提示: 数据项较多时如删除产品档案,参考: C# Code: /// <summary> /// 检查数据引用 /// </summary> /// <param name="productCode">产品编码</param> /// <returns></returns> private bool IsReference(string productCode) { if (_Database.GetQueryable<tb_BOMList>().Any(a => a.ProductCode == productCode)) return true;//BOM表 if (_Database.GetQueryable<tb_POs>().Any(a => a.ProductCode == productCode)) return true;//采购 if (_Database.GetQueryable<tb_SOs>().Any(a => a.StockCode == productCode)) return true;//销售 if (_Database.GetQueryable<tb_INs>().Any(a => a.ProductCode == productCode)) return true;//入仓 if (_Database.GetQueryable<tb_IOs>().Any(a => a.ProductCode == productCode)) return true;//出仓 if (_Database.GetQueryable<tb_YKs>().Any(a => a.ProductCode == productCode)) return true;//盘盈盘亏 if (_Database.GetQueryable<tb_ICs>().Any(a => a.ProductCode == productCode)) return true;//盘点 return false; } //来源:C/S框架网 | www.csframework.com | QQ:23404761 扫一扫加作者微信
参考文档:
C# GridView 资料行数据检查使用的方法(ValidateRow与InvalidRowException) DEV组件LookupEdit,ComboBoxEdit绑定数据源 DEV CheckedListBoxControl组件绑定数据源 C/S系统开发框架V2.2模块引用关系表(原) 开发框架处理保存图片数据 使用触发器控制用户删除业务往来中使用的基础资料 增值功能:数据字典自动生成流水号解决方案 C# C/S架构下客户、供应商等大批量数据单条记录选取组件 开发技巧:您不能删除别人的数据! 开发技巧:删除资料保存日志并检查数据是否能删除 删除用户前逻辑判断,检查当前用户是否关联业务数据或创建业务数据 SQL存储过程:删除基础资料前逻辑判断,检查是否有关联业务数据 删除数据库备份文件存储过程:p_DeleteBakFiles 保存报错:当前记录已被其它用户删除,刷新数据失败-C/S开发框架 FAQ:点明细表删除按钮删除一条数据,保存后发现其他记录也被删除了!|C/S开发框架
其它资料:
什么是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内容管理系统 | |