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
/// 删除产品类别
/// </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
/// 检查数据引用
/// </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

参考文档:
CSFrameworkV6 - Winform开发框架 - Delete方法使用
CSFrameworkV6旗舰版 | 基础资料窗体改装主从子表(多级明细表)解决方案|C/S开发框架
CSFrameworkV6旗舰版 | 表格多选操作删除记录|C/S开发框架
CSFrameworkV6旗舰版 | 单表基础资料窗体完整C#源码|C/S开发框架
CSFrameworkV6 | 软件用户数授权 | 通过控制在线用户数实现逻辑|C/S开发框架
CSFrameworkV6 | 支持单表基础资料表格批量编辑数据|C/S开发框架
CSFrameworkV6|业务单据数据查询页面显示主从表关联数据解决方案|C/S开发框架
CSFrameworkV6-导出Excel模版、导入数据设计
CSFrameworkV6 - 单表基础资料关于res扩展模型处理方案
CSFrameworkV6快速开发框架 | 使用PostgreSql 数据库测试报告|C/S开发框架
CSFrameworkV6旗舰版开发框架 | 集成软件授权认证系统|C/S开发框架
CSFrameworkV6旗舰版|新功能|在线用户查询、设置用户下线|C/S开发框架
CSFrameworkV6旗舰版开发框架 | 集成软件授权认证系统|C/S开发框架
CSFrameworkV6软件开发框架+达梦数据库(国产数据库)测试报告|C/S开发框架
CSFrameworkV6软件开发框架 | MySql数据库测试报告|C/S开发框架
CSFrameworkV6软件开发框架 | Oracle数据库测试报告|C/S开发框架
CSFrameworkV6 - Winform开发框架 - Delete方法使用
CSFrameworkV6旗舰版 | 基础资料窗体改装主从子表(多级明细表)解决方案|C/S开发框架
CSFrameworkV6旗舰版 | 表格多选操作删除记录|C/S开发框架
CSFrameworkV6旗舰版 | 单表基础资料窗体完整C#源码|C/S开发框架
CSFrameworkV6 | 软件用户数授权 | 通过控制在线用户数实现逻辑|C/S开发框架
CSFrameworkV6 | 支持单表基础资料表格批量编辑数据|C/S开发框架
CSFrameworkV6|业务单据数据查询页面显示主从表关联数据解决方案|C/S开发框架
CSFrameworkV6-导出Excel模版、导入数据设计
CSFrameworkV6 - 单表基础资料关于res扩展模型处理方案
CSFrameworkV6快速开发框架 | 使用PostgreSql 数据库测试报告|C/S开发框架
CSFrameworkV6旗舰版开发框架 | 集成软件授权认证系统|C/S开发框架
CSFrameworkV6旗舰版|新功能|在线用户查询、设置用户下线|C/S开发框架
CSFrameworkV6旗舰版开发框架 | 集成软件授权认证系统|C/S开发框架
CSFrameworkV6软件开发框架+达梦数据库(国产数据库)测试报告|C/S开发框架
CSFrameworkV6软件开发框架 | MySql数据库测试报告|C/S开发框架
CSFrameworkV6软件开发框架 | Oracle数据库测试报告|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内容管理系统 |
什么是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内容管理系统 |
在线客服
