APP下载

基于ADO.Net的农路基础数据更新系统信息批量处理方法

2014-08-07王启超王科伟

常州信息职业技术学院学报 2014年3期
关键词:批量架构编码

范 燕 王启超 王科伟

(1.常州信息职业技术学院电子与电气工程学院 江苏常州 213164;2.南京工业大学交通学院 江苏南京 210009;3.江苏纬信工程咨询有限公司 江苏南京 210029)

0 引言

随着我国进入全面建成小康社会阶段,城市化及新农村建设进程加快。在此过程中,农村公路基础数据信息化存储及统一管理是必经之路。交通信息是智能交通系统(ITS)中多个子系统的基础[1]。其中,相比于动态交通流信息,静态道路交通基础设施信息具有调查周期长、更新难度大的特点。Garda和Weston描述了城市道路与公路信息统一化管理的优势,研究了欧洲在相关方面的政策,并探讨相关方法如何在波斯湾各国进行应用。李兴林[2]在对系统建设需求、服务对象、信息需求进行分析后,提出公路信息处理子系统应能够从信息采集子系统中提取有效数据信息。数据处理平台能对数据库中信息进行加工处理。

相关公共数据服务系统[1,3-5]的设计已比较完善,但对于基础信息修改方面,没有考虑到大量信息修改时人工操作错误率的提高。基于此,本文针对农路基础信息管理系统(e-Road),采用C#语言,提出农路基础信息批量处理的方法,可以降低操作员的工作强度,提高修改的准确性,具有更低的花费和更高的实用价值。

1 e-Road系统与C#语言

1.1 e-Road 系统

农路基础数据更新系统(以下简称e-Road)是对农路基础信息进行采集与管理的平台N包括内业处理子系统和外业采集子系统。

在e-road中农村公路基础信息通过Access数据库存储为mdb格式文件。其中包括有桥梁表、路段表、对应编码表等数据表。路桥等覆盖物的图形信息以二进制格式存储于数据库相应字段中,属性信息存储于其他字段中。其中桥梁编码、路段编码为路桥信息中每条记录的唯一编码。为节约存储空间,提高存储效率,将有限值域变量使用数字编码存储。变量的所有可取值及其对应的编码记录在一张表中。

e-Road具有良好的数据采集与处理能力,但在短时间内处理大量数据时,仍需要大量人工参与,无法进行批量处理。人工参与处理的效率相对低下,且错误率较高。

1.2 C#语言

C#语言是.NET框架的标准语言,由微软于2002年提出。作为一种完全面向对象的语言,2013年在TIOBE编程语言排名第5位。C#采用C语言的语法结构,具有可视化的组件式开发能力。相比于C++,其面向对象的特性更加突出,且弱化了指针的使用,使开发的过程更为简单,开发的程序更为安全。但是,由于使用C#开发的程序是以字节码的形式存储,代码的安全性较低;由于其运行于.NET framework运行时上,代码执行效率相比于C/C++较低。

虽然C#程序执行效率较低,但由于本方法并不要求程序具有实时性,故足以满足本方法的要求。其完全面向对象的特性,使得开发人员可以以更贴近人的思维进行程序开发。

2 数据库处理方法与架构思想

2.1 基于ADO.NET的数据库处理方法

ADO.NET的名称起源于 ADO(ActiveX Data Objects)是.NET框架中的一组类库,用于在基于.NET的应用程序的数据之间进行通信。在使用.NET框架开发的数据库管理应用程序中,ADO.NET是常用的连接数据源、执行数据命令、提交查询和处理结果的类库。可以直接处理检索到的结果或者将处理结果放入到ADO.NET的数据集中,并可以将来自不同数据源的数据或在层之间进行远程处理的数据组合在一起使用。其中连接数据源的类为Connection类,数据操作的类有Command、DataReader、DataAdapter,用于存储数据的 DataTabel和 Data-Set。ADO.NET利用数据提供程序进行数据库联接与访问,通过ADO.NET配合SQL语句可以访问所有通过ODBC或OLEDB接口访问的数据库,如Access、dBase、SQLServer、Oracle 等。

在本文提出的方法中,由于数据的人工修改部分是在更为通用的excel中完成,不需要涉及到数据集(dataset),所以使用Command进行数据的修改。批量操作过程通过业务层进行。

2.2 三层架构设计

三层架构是目前较为流行的架构思想,具有良好的可拓展性。三层架构一般是指表示层、业务层、数据层,如图1。

图1 三层结构基本模型

表示层是应用的用户接口部分(用户界面),提高了软件的可操作性,对用户提供友好的人机交互界面。为使用户能直观地进行操作,一般使用图形用户接口(GUI);业务层(中间层)是整个应用系统的核心,体现了整个系统的功能。这一层不用考虑具体的数据库操作与表现形式,只需考虑功能的实现;数据层负责数据信息的存储、访问及优化。数据库管理系统必须能迅速执行大量数据的更新和检索。目前主要是关系数据库管理系统(RDBMS)[4]。

在开发基于ADO.NET的数据库程序时,应用.Net框架良好的面向对象的特性,可以快速地开发出具有良好可拓展性与鲁棒性的应用程序。

3 信息批量处理的程序设计

3.1 程序设计方案

程序的编写在江苏省农村公路提档升级项目过程中进行。需要随时对程序进行修改以适应新的需求。为方便程序的修改及后期移植,采用三层架构进行编写。以Microsoft Visual 2010为开发工具,以Microsoft Access作为数据库平台完成软件的编写。

程序为桌面程序,其架构分为3层:数据层、业务层和界面层。界面层面向用户提供图形界面及用户级别操作功能,如图2所示。

图2 程序界面

为提高操作效率,采用极简设计。界面分为输入区和功能按钮区。输入区为一个多行文本框;功能按钮区为实现软件功能的功能按钮。业务层,接收界面层的命令,解释之后传递给数据层。由于此程序没有返回数据库的数据,不需将数据层的数据传输给界面层。数据层只对数据库进行操作,如拼接SQL语句,执行操作。

3.2 程序功能设计

根据现阶段的需要,程序需满足两种功能:①选择需要操作的项目库数据库文件;②修改需要更新的数据;③删除审查单位审查不通过的数据。

选择数据库文件操作应简单易用,使用人机交互界面进行。可以使用windows选择文件对话框控件进行。

修改数据功能要实现向程序输入待修改记录的唯一编号集,需修改的字段,修改后的值。程序能够自动批量对各条记录进行更新。

删除数据功能要实现向程序输入待删除记录的唯一编号集,根据编号集格式化规则解析出各条待删除记录并进行删除。

4 应用实例

以江苏省农村公路提档升级项目中的大丰市桥梁项目为例,根据需求需要删除的数据有230条。

4.1 待修改数据提取

将返回表格与原始表格进行对比。在excel中,使用vlookup函数查询返回表格中的桥梁编号在原始表中对应的其他任一字段。筛选出结果为#N/A的记录,即为项目库中需要删除的记录。

4.2 数据格式化

将筛选出的需要删除的记录的桥梁编码记录下来,使用逗号隔开各条记录。将剩下的记录的桥梁编码、各需要修改的字段使用逗号隔开,将各条记录之间用分号隔开。

4.3 信息批量处理

点击load按钮,选择需要操作的数据库。弹出“ok!”表示连接数据库成功。将格式化好的需要删除的桥梁编码粘贴到输入区中,点击delete按钮。弹出“ok!”表示数据删除成功。清空文本框,将格式化好的剩下的记录粘贴于此。点击modify按钮。弹出“ok!”表示数据修改成功。如果数据处理不成功,应检查数据格式化是否正确。

经本实例验证,采用传统方法人工进行数据操作,需要花费一天时间;而采用ADO.NET的信息批量处理方法,只需要不到10分钟,且保证了正确率、易于修改。

5 结束语

传统方法使用e-Road系统对数据进行逐条更新,效率低下且准确度无法保障。笔者对e-road数据库进行分析,使用C#语言编写基于ADO.NET的数据库程序。程序使用三层架构以方便升级。经实践证明,相比于传统方法,大大提高了项目数据整理效率。

桌面程序虽然可以完成现阶段的需求,但当对同一个数据库文件进行大量不可简化的操作时,无法进行多人的协同工作。随着工作效率的提高、工作量的增大,B/S结构的程序将逐渐显示其优越性。三层架构的设计使得程序可以方便地移植为B/S结构的程序,只需将数据层和业务层迁移到服务器上,使用ASP.NET重新设计表现层即可。使用一台工作机作为服务器,其他多台计算机可以协同操作同一个数据库文件。当单一地区操作量过大时,进行多用户协同操作可以提高效率。

[1] 戴友锋.基于GIS的城市综合交通信息管理技术研究[D].郑州:解放军信息工程大学,2008:25-28.

[2] 李兴林.公路交通公众出行信息服务系统的建设[J].公路交通科技:应用技术版,2008(1):34-36.

[3] 钱乐祥,余明全.土地信息系统的几个基本问题[J].测绘通报,1999(10):18-21.

[4] 朱红波,郭宏俊.基于GIS的土地整理基础信息数据库建立[J].地理与地理信息科学,2003(1):25-26.

[5] 刘宇,王永生,孙庆辉.数字城市地理空间信息公共平台的设计[J].测绘科学技术学报,2006(5):359-362.

猜你喜欢

批量架构编码
基于FPGA的RNN硬件加速架构
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
批量提交在配置分发中的应用
功能架构在电子电气架构开发中的应用和实践
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
Genome and healthcare
WebGIS架构下的地理信息系统构建研究
一种基于FPGA+ARM架构的μPMU实现
在数控车床上批量钻铰孔类工件的实践