保存报错:当前记录已被其它用户删除,刷新数据失败-C/S开发框架
作者:csframework|C/S框架网  发布日期:2021/12/30 18:35:23

保存报错:当前记录已被其它用户删除,刷新数据失败-C/S开发框架

测试环境

窗体:数据字典窗体(单表)

主键:isid字段,自增字段

报错原因

以isid字段作为主键,在保存数据后,最新的isid值没有返回到前端界面,因此在刷新数据时找不到记录!

解决方案

重写DoSave方法,保存成功后,重新查询当前记录的数据,然后同步更新本地缓存。

C# 全选
public override void DoSave(IButtonInfo sender)
{
    try
    {
        frmWaitingEx.ShowMe(this);

        UpdateLastControl(); //更新最后一个输入控件的数据

        if (!ValidatingData()) return; //检查输入完整性

        bool ret = _BLL.Update();//调用业务逻辑层的Update方法提交数据
        if (ret)
        {
            this.DoAfterSave(_BLL.DataBinder);

            string key = ConvertEx.ToString(_BLL.DataBinder.Rows[0][_BLL.KeyFieldName]);

            //重新查询当前记录的数据,更新表格当前记录,做缓存同步
            DataTable dt = _BLLInstance.Query(txtCustomerCode.EditValue.ToString(), txtDomain.Text, DateTime.MinValue);
            if (dt.Rows.Count > 0)
            {
                this.UpdateSummaryRow(dt.Rows[0]); //刷新表格内的数据.                                    
                this.DoSave_ResetState();
            }
            else
            {
                Msg.Warning("当前记录已被其它用户删除,刷新数据失败!\r\n程序:frmBaseDataDictionary.DoSave()");
            }
        }
        else
            Msg.Warning("保存失败!");
    }
    finally
    {
        frmWaitingEx.HideMe(this);
    }
}
上一篇 下一篇