更新明细表的外键-优化方法UpdateDetailKey|C/S框架网

  更新明细表的外键-优化方法UpdateDetailKey|C/S框架网

UpdateDetailKey方法用于在保存数据时,自动更新明细表的外键值,此方法必须提供三个参数:

1. 【明细表DataTable实例】
2. 【外键字段名称】
3. 【外键字段的值】

C# Code:

/// <summary>
/// 更新明细表的外键
/// </summary>
/// <param name="detail">明细表</param>
/// <param name="foreignFieldName">外键字段名称</param>
/// <param name="foreignKeyValue">外键值</param>
protected void UpdateDetailKey(DataTable detail, string foreignFieldName, string foreignKeyValue)
{
   if (detail == null)
   throw new Exception("明细表不能为空(null)!");
   
   if (String.IsNullOrEmpty(foreignFieldName))
   throw new Exception("明细表没指定外键, 请检查表模型定义!");
   
   foreach (DataRow row in detail.Rows)
   {
      //仅新增记录才需要更新外键,注意状态的使用
      if (row.RowState == DataRowState.Added)
      {
         if (String.IsNullOrEmpty(foreignKeyValue))
         throw new Exception("外键值为空!");
         else
         row[foreignFieldName] = foreignKeyValue;
      }
   }
}

//来源:C/S框架网(www.csframework.com) QQ:23404761


注:此BUG修复适用所有C/S框架网的产品



参考文档:

支持主从表BLL单独提交明细表优化UpdateDetailKey方法


版权声明:本文为CSFramework文库发布内容,转载请附上原文出处连接
C/S框架网
发表评论

评论内容
昵称:
关联文章

更新明细表-优化方法UpdateDetailKey|C/S框架
支持主从表BLL单独提交明细表优化UpdateDetailKey方法|C/S框架
C/S开发框架DAL层提交数据报错"值为空!"解决方案。
使用bllBaseDataDict类提交业务单据(主从表)明细表实例|C/S框架
bllBaseDataDict.CreateDataBinder方法详解及性能优化
C/S框架示例程序数据库下载(不断更新)
C/S开发框架标准版-后台数据更新dalBase类(UML图及方法介绍)
更新主表模式UpdateKeyMode枚举详解(2)
C/S开发框架教程:使用基础资料(数据字典)DAL层更新主从表(或多表)数据
C#获取内IP
校验明细表数据ValidatingDetailData方法有BUG
Winform皮肤框架之GridView表格列头右菜单详解|C/S框架
用户管理表格右弹出菜单:修改密码,复制权限,锁定用户|C/S框架
C#.NET开发框架业务主和逻辑主定义
C/S开发框架新功能:批量更新业务单据业务员、制单人制表人
SQL获取表结构表名,字段名称,类型,Identity,PK主,FK,IDX索引,字段说明等资料
sp_sys_GetTableFieldDef存过:SQL获取表结构字段名称,类型,Identity,PK主,FK,IDX索引,字段说明
明细表定制“新增记录”快捷键
SqlDataAdapter.FillSchema(DataTable)方法填充数据表和约束
C#根据第三方提供IP查询服务获取公IP地址