- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
?
HYPERLINK /wanweiaiaqiang/article/details/6992906 基于ArcGIS10.0和Oracle10g的空间数据管理平台四(C#开发)-通用数据管理模块
分类:? HYPERLINK /wanweiaiaqiang/article/category/709079 软件编程实践? HYPERLINK /wanweiaiaqiang/article/category/930132 C#开发ArcGIS软件2011-11-20 15:26?486人阅读? HYPERLINK /wanweiaiaqiang/article/details/6992906 \l comments 评论(0)? HYPERLINK javascript:void(0); \o 收藏 收藏? HYPERLINK /wanweiaiaqiang/article/details/6992906 \l report \o 举报 举报
??? 上一篇文章把整个系统的主界面实现了,接下来就是实现主界面上提供的各个功能模块。首先介绍的是通用数据管理模块,为什么称为通用数据呢?因为这些数据和我们平时使用关系型数据库管理的数据是类似的,这里称为通用数据主要是为了和空间数据做区别。
??? 该模块采用统一的界面来管理所有属性数据表,可以同时做添加、删除和修改,而且对于每一个表都是通用的操作。用户选择修改的表以后就建立一个数据集和这个表关联,再将这个数据集绑定到数据显示控件上,同时将数据集绑定到数据适配器上,当用户对这个表的编辑操作完成以后并点击保存按钮就会将所有的更新操作与数据库同步,这些功能都是调用数据适配器的接口完成。在与数据库同步的时候会先查看是否有与之相关联的表也需要同步更新,如果有就先更新关联的表。为了保证数据库中数据的一致性和完整性,就必须保证所有更新操作都能成功的完成或者都不完成,所以所有更新操作都在一个事务中进行,如果更新过程中遇到异常就回滚到最初状态。整个过程的流程图如下:
??? 第一篇文章介绍这个功能的时候,我贴出了这个模块运行的界面,从界面可以看出主要用到了两个控件,左边是一个树形控件用于按类别显示所有的属性表的名称,通过鼠标就可以选择一个需要查看、修改的表,右边是一个绑定了数据集的表数据显示控件,在这个控件中可以删除、添加和修改表的内容。除了这两个主要控件以外,就是一些用于显示文本提示的label控件和一些按钮控件,按钮主要用于控制用户具体的某种操作,后面会详细介绍每一个按钮功能的实现。
??? 首先定义了一些类的成员变量,每一个成员变量的作用如下代码和注释所示:
[csharp]? HYPERLINK /wanweiaiaqiang/article/details/6992906 \o view plain view plain HYPERLINK /wanweiaiaqiang/article/details/6992906 \o copy copy
private?OracleCommandBuilder?builder;//用于构建适配器命令??
private?OracleDataAdapter?da;?//数据集适配器,用于同步控件与数据库的操作??
private?DataSet?ds;//数据集,可以是一个表也可以是多个表的集合??
private?string?selectedNodeText;//记录树形节点选择的文本??
private?string?tableName;//记录表的名称??
protected?OracleConnection?Connection;//Oracle连接??
private?bool?isChanged?=?false;//控件绑定的数据是否有改变??
private?FrmShowLayer?fsl;//用于显示有空间对应表的可视化图形(地图)显示??
private?bool?bIdChange?=?false;//判断表中的ID字段是否有改变,因为ID改变了会涉及到不同的操作??
private?bool?bIdDel?=?false;//ID字段是否有删除,用于级联删除??
private?bool?bCellValueChange?=?false;//数据是否有改变??
private?ArrayList?newIdList;//用于保存新增列的ID字段??
private?ArrayList?oldIdList;//用于保存被改变列以前的ID字段??
private?ArrayList?delIdList;//用于保存删除列的ID字段??
?
??? 接着构造函数初始化一些变量:
[cs
原创力文档


文档评论(0)