WinForm应用程序框架设计之WinAction(数据操作)
来源:互联网 发布:qq飞车指挥官改装数据 编辑:程序博客网 时间:2024/05/23 22:26
我们来先看看WinAction的有关数据操作的流程:(包括更新数据操作和取消更新的操作)
具体的参考代码:
更新数据操作:
/// <summary> /// 实体更新时执行 /// </summary> /// <param name="entity">当前操作的实体</param> /// <param name="caller">修改对象(窗体)</param> /// <param name="sender">修改对象(窗体)的按钮</param> /// <param name="e">唤出窗体的事件参数</param> public virtual void SaveEntity(object entity, object caller, object sender, EventArgs e) { try { object mResult = useBll.Update((T)entity); //卸载修改窗体的方法 if (caller is IEditDataForm) UnloadEditForm(caller as IEditDataForm); //隐藏执行该方法的窗体(修改窗体) if (caller is Form) (caller as Form).Hide(); if (AfterUpdateEntity != null) AfterUpdateEntity(entity, caller, this, e); } catch (Exception ex) { /* if (entity is Entity) { if (!(entity as Entity).IsNewEntity) {//出错时把数据实体的数据进行恢复 if (caller is IBindEntityAware) (caller as IBindEntityAware).RecoverEntity(entity); } }*/ if (AfterUpdateEntityError != null) AfterUpdateEntityError(entity, caller, this, e); else throw new Exception(ex.Message, ex); } } /// <summary> /// 更新实体对象列表时执行 /// </summary> /// <param name="entity"></param> /// <param name="caller">修改对象(窗体)</param> /// <param name="sender">修改对象(窗体)的按钮</param> /// <param name="e">唤出窗体的事件参数</param> public virtual void UpdateEntitys(object entity, object caller, object sender, EventArgs e) { try { if (caller is IDataListEdit) { IEnumerable deletedList = (caller as IDataListEdit).GetDeletedDataList(); foreach (object delData in deletedList) useBll.Delete(TransformToEntity(delData)); IEnumerable updateList = (caller as IDataListEdit).GetCurrentDataList(); foreach (object curData in updateList) useBll.Update(TransformToEntity(curData)); } //卸载修改窗体的方法 if (caller is IEditDataForm) UnloadEditForm(caller as IEditDataForm); if (caller is Form) (caller as Form).Hide(); if (AfterUpdateEntity != null) AfterUpdateEntity(entity, caller, this, e); } catch (Exception ex) { if (AfterUpdateEntityError != null) AfterUpdateEntityError(entity, caller, this, e); else throw new Exception(ex.Message, ex); } }注意,有两种更新的方式:一种是单个数据实体更新,另外一个就是批量更新。
取消操作:
#region (修改窗体)实体操作方法 /// <summary> /// editform执行的取消实体更新时执行 /// </summary> /// <param name="entity">当前操作的实体</param> /// <param name="caller">修改对象(窗体)</param> /// <param name="sender">修改对象(窗体)的按钮</param> /// <param name="e">唤出窗体的事件参数</param> public virtual void CancelUpdateEntity(object entity, object caller, object sender, EventArgs e) { //editform执行的取消更新过程 if (AfterUpdateEntityCancel != null) AfterUpdateEntityCancel(entity, caller, this, e); if (caller is IEditDataForm) UnloadEditForm(caller as IEditDataForm); if (caller is Form) (caller as Form).Hide(); }
原创作品出自努力偷懒,转载请说明文章出处:http://blog.csdn.net/kfarvid 或 http://www.cnblogs.com/kfarvid/
- WinForm应用程序框架设计之WinAction(数据操作)
- WinForm应用程序框架设计之WinAction(新增数据)
- WinForm应用程序框架设计之WinAction(修改数据)
- WinForm应用程序框架设计之WinAction(删除数据)
- WinForm应用程序框架设计之WinAction(介绍)
- WinForm应用程序框架设计之WinAction(一:显示列表窗体)
- 应用程序框架设计之二:分层和层间数据传递(上)
- 应用程序框架设计之二:分层和层间数据传递(下)
- 应用程序框架设计之前言
- 应用程序框架设计之前言
- 应用程序框架设计之前言
- 应用程序框架设计之前言
- WinForm应用程序之注册模块的设计与实现
- 应用程序框架设计(一)
- 应用程序框架设计之二:分层和层间数据传递
- 应用程序框架设计之前言 (转)
- Winform开发框架之数据即时更新的实现
- Winform开发框架之数据即时更新的实现
- 如果分配给命令的连接位于本地挂起事务中,ExecuteNonQuery 要求命令拥有事务。命令的 Transaction 属性尚未初始化
- C#獲取指定文件夾的所有檔案
- 对话框大全
- jstl标签库
- 雷声大雨点小!!!
- WinForm应用程序框架设计之WinAction(数据操作)
- Java上传
- 从一个字符串中删除一个子串后返回该字符串和包含的子串的个数
- Java IO之 CheckedInputStream和CheckedOutputStream
- (int)a、&a、(int)&a、(int&)a的区别,很偏僻的题
- Spring中的四种声明式事务的配置
- android文件关联之mime type
- 工作流实现技术 2007-8-10 作者:朱全敏
- strstr函数实现