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



上一篇 下一篇