更新明细表的外键-优化方法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
/// <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方法
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网