保存报错:当前记录已被其它用户删除,刷新数据失败

保存报错:当前记录已被其它用户删除,刷新数据失败

测试环境

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

主键: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);
    }
}
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:DataBinderTools.BoundComboBox方法,绑定ComboBox组件的下拉数据源
下一篇:最强效率!3个小时完成一个C/S软件系统开发
评论列表

发表评论

评论内容
昵称:
关联文章

保存当前记录其它用户删除刷新数据失败
修改用户组权限后保存
更新第一条记录保存后没有刷新表格的缓存数据
新增用户保存失败:提示并发错误
CSFramework开发框架:违反并发性:UpdateCommand影响了预期1条记录中的0条
删除用户前逻辑判断,检查当前用户是否关联业务数据或创建业务数据
开发技巧:删除资料保存日志并检查数据是否能删除
开发框架旗舰版保存数据并重新刷新CurrentBusiness前端缓存数据
系统管理导入菜单数据:提示违反并发性
CSFramework.WebApi令牌管理器(Token Provider)实现添加、删除刷新令牌过期控制
VS按F5调试WebApi,ID为14740的进程当前未运行
数据编辑页禁止刷新数据
C/S开发框架DAL层提交数据"外键值为空!"解决方案。
SQL用户添加用户角色db_owner提示用户组或角色在当前数据库中存在
代码生成器加载用户表和视图解决方案|C/S框架网
明细表插入记录Insert:行插入位置-2147483648无效。
修改数据保存后重复生成日志记录
C# DataGridView 自动给新增记录当前单元格赋值
请问如何遍历当前明细,并删除空行呢?
如运行程序时加载数据库:存在同名的数据库,或无法打开UNC目录