保存报错:当前记录已被其它用户删除,刷新数据失败
测试环境
窗体:数据字典窗体(单表)
主键: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);
}
}
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网