数据字典重写SaveResultEx UpdateEx方法手动控制事务自动生成流水号
数据字典重写SaveResultEx UpdateEx方法手动控制事务自动生成流水号本文适用于数据字典窗体根据某个字段类型自动生成改类型的流水序号。
比如产品类型是:
AB,生成AB0000001的序号。
ZZ,生成ZZ0000001的序号。
解决方案:
1. 重写DAL层的UpdateEx方法
C# Code:
/// <summary>
/// 数据字典:手动控制事务及自动生成流水号
/// </summary>
/// <param name="data">用户提交的数据</param>
/// <returns></returns>
public override SaveResultEx UpdateEx(DataSet data)
{
_UserManualControlTrans = true;
SaveResultEx result = new SaveResultEx((int)ResultID.SUCCESS, "");
try
{
this.BeginTransaction();//启动事务
string dataCode = "";
DataTable summary = data.Tables[tb_CommonDataDict.__TableName];//取出主表数据
if (summary.Rows[0].RowState == DataRowState.Added) //新增记录,设主键
{
string dataType = ConvertEx.ToString(summary.Rows[0][tb_CommonDataDict.DataType]);//取数据类型
dataCode = DocNoTool.GetDataSN(_CurrentTrans, dataType, true);//在同一事务内取流水号
summary.Rows[0][tb_CommonDataDict.DataCode] = dataCode;//自动生成流水号
}
else
{
dataCode = ConvertEx.ToString(summary.Rows[0][tb_CommonDataDict.DataCode]);
}
result = base.UpdateEx(data);//提交数据
result.PrimaryKey = dataCode;//返回自动生成的主键
this.CommitTransaction();//提交事务
}
catch
{
this.RollbackTransaction();//回滚
}
return result;
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// <summary>
/// 数据字典:手动控制事务及自动生成流水号
/// </summary>
/// <param name="data">用户提交的数据</param>
/// <returns></returns>
public override SaveResultEx UpdateEx(DataSet data)
{
_UserManualControlTrans = true;
SaveResultEx result = new SaveResultEx((int)ResultID.SUCCESS, "");
try
{
this.BeginTransaction();//启动事务
string dataCode = "";
DataTable summary = data.Tables[tb_CommonDataDict.__TableName];//取出主表数据
if (summary.Rows[0].RowState == DataRowState.Added) //新增记录,设主键
{
string dataType = ConvertEx.ToString(summary.Rows[0][tb_CommonDataDict.DataType]);//取数据类型
dataCode = DocNoTool.GetDataSN(_CurrentTrans, dataType, true);//在同一事务内取流水号
summary.Rows[0][tb_CommonDataDict.DataCode] = dataCode;//自动生成流水号
}
else
{
dataCode = ConvertEx.ToString(summary.Rows[0][tb_CommonDataDict.DataCode]);
}
result = base.UpdateEx(data);//提交数据
result.PrimaryKey = dataCode;//返回自动生成的主键
this.CommitTransaction();//提交事务
}
catch
{
this.RollbackTransaction();//回滚
}
return result;
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
2. 重写界面层的DoSave方法
C# Code:
public override void DoSave(IButtonInfo sender)
{
//调用基类提供的保存方法
base.DoSaveEx(sender);
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
{
//调用基类提供的保存方法
base.DoSaveEx(sender);
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761

参考文档:
达梦数据库DmException: 变量空间溢出 [sql]: INSERT INTO,Microsoft.EntityFrameworkCore.DbUpdateException|C/S开发框架
EF提交数据:DbUpdateException:不能更新时间戳列。(Timestamp类型)|C/S开发框架
数据字典窗体根据某个字段类型自动生成改类型的流水序号
数据字典基础资料窗体主键设置为自动生成流水号码解决方案
C/S开发框架教程:使用基础资料(数据字典)的DAL层更新主从表(或多表)数据
增值功能:数据字典自动生成流水号解决方案
.NET代码生成器V6.1 - 快速生成Winform窗体代码
CSFrameworkV6旗舰版 | 单表基础资料窗体完整C#源码|C/S开发框架
快照隔离事务访问数据库,因为在此数据库中不允许快照隔离。请使用 ALTER DATABASE 以允许快照隔离。
软件开发框架培训内容大全 | CSFrameworkV5.1旗舰版|培训大纲
数据字典窗体bllBaseDataDict类详解|开发教程
frmBaseDataDictionary类成员介绍|C/S开发框架|开发教程
C# Winform增删查改快速开发框架|C/S框架网
高级版V3.0-公共数据字典出现重复启动事务导致异常
达梦数据库DmException: 变量空间溢出 [sql]: INSERT INTO,Microsoft.EntityFrameworkCore.DbUpdateException|C/S开发框架
EF提交数据:DbUpdateException:不能更新时间戳列。(Timestamp类型)|C/S开发框架
数据字典窗体根据某个字段类型自动生成改类型的流水序号
数据字典基础资料窗体主键设置为自动生成流水号码解决方案
C/S开发框架教程:使用基础资料(数据字典)的DAL层更新主从表(或多表)数据
增值功能:数据字典自动生成流水号解决方案
.NET代码生成器V6.1 - 快速生成Winform窗体代码
CSFrameworkV6旗舰版 | 单表基础资料窗体完整C#源码|C/S开发框架
快照隔离事务访问数据库,因为在此数据库中不允许快照隔离。请使用 ALTER DATABASE 以允许快照隔离。
软件开发框架培训内容大全 | CSFrameworkV5.1旗舰版|培训大纲
数据字典窗体bllBaseDataDict类详解|开发教程
frmBaseDataDictionary类成员介绍|C/S开发框架|开发教程
C# Winform增删查改快速开发框架|C/S框架网
高级版V3.0-公共数据字典出现重复启动事务导致异常
其它资料:
什么是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内容管理系统 |
在线客服
