数据字典重写SaveResultEx UpdateEx方法手动控制事务自动生成流水号
作者:C/S框架网  发布日期:2018/10/27 19:45:06
  数据字典重写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


2. 重写界面层的DoSave方法


C# Code:

public override void DoSave(IButtonInfo sender)
{
  
//调用基类提供的保存方法
  
base.DoSaveEx(sender);
}

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





C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务



上一篇 下一篇