现在的位置: 首页 > 综合 > 正文

基于ArcGIS10.0和Oracle10g的空间数据管理平台五(C#开发)-通用工具类

2012年11月08日 ⁄ 综合 ⁄ 共 21941字 ⁄ 字号 评论关闭

    由于在介绍通用数据管理模块功能的时候用到了许多通用的功能,例如word和excel与DataGridView控件的相互导入导出、写日志到数据库中等等。为了后面每一篇文章都能清楚的知道每一个功能具体是怎么实现的,现在先统一把用到的所有公用功能统一介绍和实现。由于SqlHelper类,也就是数据库的一些通用操作已经在登录模块中介绍,就不在重复介绍了。本篇将相介绍通用工具类CommonTools,由于代码中有比较详细的注释了,就不详细解析具体代码的功能了。这个类实现的功能如下。

1.从DataGridView控件导出数据到Word文档

2.导出DataGridView中的数据到excel,实现代码如下:

3.导入XML文件的数据到Oracle数据库

     这个函数主要用在元数据管理子系统,把XML格式的数据导入Oracle数据库,这里XML格式的文件是通过一个XSD文件定义格式得到的,XSD文件就是Xml数据格式的约束文件,就是通过它定义XML具体的格式。然而微软有一个工具可以根据这个XSD文件生成对应的数据集类,在我的代码里就是NewDataSet类。这个数据集类就可以管理对应的格式的所有XML生成的表结构数据。这里还需要说明一点的就是管理元数据需要一个单独的元数据库,也就是要求重新建立一个Oracle数据库,但是用C#代码创建Oracle数据库确实很有难度,所以我选择了一种比较巧妙的实现方式,就是把所有属于元数据的表用前缀标明(如metadata_名称),这样每次操作元数据库就只需要找到相应前缀的表就可以了,具体在元数据管理子系统有详细介绍实现方案。

    因为XML文件里面包含有图片数据(经过64base编码的字符串表示),所以在处理XML文件需要先处理一下这个XML文件的图片字段,才有上面新建一个临时的XML文件,然后用数据集类对象读入XML数据,然后删除临时的XML文件。最后还是例如数据集适配器来插入元数据到Oracle数据库。

4.根据元数据的ID删除一条元数据(从Oracle数据库):

    因为根据XSD文件解析生成的数据库表有十几个,所以对每一个表单独采用事务操作,就是这十几个表其实是一个整体,可以完整的表示一条元数据(元数据:描述数据的数据,这里就是描述空间数据特性的数据)。

5.根据元数据的ID从Oracle查询得到一条元数据,和删除一条元数据类似,也需要十几个表一起操作:

6.导出Oracle数据库的数据到XML文件中

7.下面两个函数实现treeview控件向XML转换,主要用于对元数据的编辑后保存到XML文件中。

8.遍历XML并实现向tree控件的转化

9.将DataGridView显示的内容导出Excel

10.excel数据导入到DataGridView控件中

11.数据备份与恢复

    总结:这些功能放在一个类中可能不是很合理,但是当时是为了自己编程的方便,只要有多处实现的一些独立的功能,我就加入到这个类中来,并全部用静态的方法实现。

抱歉!评论已关闭.