版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录1引言12 项目背景22.1项目提出的背景22.2名词解释22.3问题的提出32.4分析问题33 需求分析43.1产品介绍43.1.1 数据比较方法的设计思路43.1.2 应用目标43.2产品面向人群43.3产品功能性需求43.4产品模块划分53.4.1模块划分53.4.2文件导入模块53.4.3数据比较模块63.4.4数据修改模块73.4.5新数据文件管理模块83.5未来可能出现的需求及解决方案93.6故障处理要求94概要设计104.1系统设计目标104.1.1近期目标104.1.2长远目标实现系统的二次开发104.2系统结构114.2.1系统类图114.2.2类功能描述124.3系统
2、流程154.3.1系统总体时序图154.3.2系统时序图分析164.4数据对比解决方案的评估175 系统功能实现185.1 文件导入模块功能实现185.1.1 文件类型匹配检查185.2 数据比较模块195.2.1 表结构匹配检查205.2.2 数据量匹配检查235.2.3 数据比较245.2.4 比较结果显示245.3 数据修改模块265.3.1 切换数据库的逻辑处理265.3.2 动态存储要修改的表275.4 新数据文件管理模块285.4.1 保存修改数据286 总结30参考文献致谢1 引言在实现企业信息化的过程中,大家最常挂在嘴边的一句话是“三分技术、七分管理、十二分数据”,以此来表达对
3、数据的高度重视。数据可以说是一个企业的血液,它随着企业运作不断流动,并且在流动过程中随着数据的采集和使用不断变换着。在系统运行过程中,及早发现和纠正数据质量问题可大大降低成本和失败的风险。数据质量不高,有人简单地以为数据是错误的,数据不可用。其实数据质量问题比较复杂,不能用简单的对错来区分。简单的说,评价数据质量的唯一标准就是看它是否能够满足应用需求。在数据的流动过程中,质量低下的数据往往是在数据的采集和录入时产生的。目前有一种比较好的方法可以保证数据质量,即双工输入比较法。就是将同一批数据由两个输入人员在不同的时间和不同的终端上分别录入,并且形成两个临时数据库文件,然后由第三个人在程序的作用
4、下对两个库文件中的数据进行逐项比较并进行确认或修改。在这种方法中,尽管同一批数据被录入了两次从而造成了数据冗余和影响了录入进度,但对于对输入数据的正确性要求很高的场合,是一种不可缺少的和行之有效的方法,因为,两个数据录入者都同时在某处出错的机会极少,故这种方法可以极大地减少出错率2。“胜利油田图头数据质量检测工具”就是采用双工输入比较法的解决方案,专门检测录入数据质量的工具。2 项目背景2.1项目提出的背景胜利油田在对一口井进行测量的过程中,会通过地震、气压、光电等方法对这口井的各种情况进行测量,然后得出大量、复杂而又专业的图表。由于技术瓶颈的原因这些图表中所携带的数据还无法通过计算机技术自动
5、的识别并填写到基础数据库中。这就需要数据录入人员手工的来完成这项工作。由于专业的划分不同这些数据录入人员大部分对石油地址行业的数据不敏感,再加上超大的数据量使得录入数据库中的数据质量无法得到保证,而往往在现实生产活动中对数据有一个共同的要求,那就是数据的准确性和精确性,因而新录入的数据无法直接使用,必须通过有着相当专业知识的数据质量检测人员对数据进行检查。2.2名词解释(1) 胜利油田数据质量录入人员:胜利油田负责将基础数据录入数据库中的专业人员,他们的工作是从实际生产中等到的各种图表数据中识别出有用的基础数据,并将这些基础数据录入到数据库中。(2) 胜利油田数据质量检测员:胜利油田负责检测数
6、据质量的专业人员,他们的工作是分析和排除基础数据中的质量问题,保证数据在流动过程中的准确性。(3) 双工输入比较法:将同一批数据由两个输入人员在不同的时间和不同的终端上分别录入,并且形成两个临时数据库文件,然后由第三个人在程序的作用下对两个库文件中的数据进行逐项比较并进行确认或修改的方法。(4) 数据的准确性:数据的准确性一般是说数据的测量值与真实值相比的符合情况,但在油田生产数据的采集和加工处理过程中,数据的准确性往往是指采集入库的数据值和现场采集记录的正确值之间的差异。2.3问题的提出胜利油田数据质量检测工作现阶段存在的主要问题是:工作量巨大使数据质量检测人员对数据的敏感性下降,专业人员的
7、匮乏使得数据质量的检测工作质量年以保证,所有工作都由人工完成使得效率低下。希望解决的问题是:缺少一个能够有效的检测出录入数据错误的工具,能够改善胜利油田数据质量检测员高压的工作现状,帮助他们高效率、高质量的完成数据质量检测工作。2.4分析问题胜利油田图头数据是存储在access数据库的不同表当中的。由于测井形式多种多样导致这些access数据库中的表的结构也互不相同,这样就难以从石油地质专业的角度找到一个统一合理的解决方案来处理这些数据。从计算机技术的角度考虑我们采用双工输入比较法来解决这个问题。双工输入比较法解决方案的操作是这样的:通过对两个数据录入人员录入的两份具有相同结构的access数
8、据库中的数据的对比,可以找出两份数据中的差异。在一对存在差异的数据中,至少有一个数据是错误的,数据质检人员可以通过改正这写错误数据得到一份数据质量较高的数据文件。3 需求分析3.1产品介绍本软件的主要目标是通过数据比较的方法,使工作人员能够方便的发现录入到access数据库中的数据的错误,进而改正这些错误,以满足某些行业对数据质量的要求。3.1.1 数据比较方法的设计思路本软件的主数据比较方法是指通过对两份由数据录入人员录入到具有相同结构的access数据库文件中的数据进行比较,发现两份数据中差异的部分,则至少有有一个人的数据是错误的。由于两个人同时犯同一个错误的几率比一个人犯错误的几率低得多
9、,所以这种方法可以发现大多数的错误。3.1.2 应用目标此工具可以是数据质检人员方便的发现录入数据中的大部分错误,从而提高工作效率和质量。3.2产品面向人群本软件主要面向的人群是胜利油田数据质检人员,他们现在面临的主要问题是难以高效的对大量的录入数据进行检查,本软件可以方便的使他们发现录入数据中的错误,从而高效的完成工作任务。3.3产品功能性需求功能描述:软件的主要任务是实现对两个具有相同结构的access数据库文件中数据的比较,要求能够灵活的查看数据库表中的数据在数据库,要能够明确的标记差异的数据,在界面中可以对错误的数据进行修改,要能够生成新的数据文件,其结构与参与对比的两个数据库文件相同
10、,其数据为修改后正确的数据。具体功能需求如下:l 数据比较只针对结构相同的表,对不同者需要作出提示。l 需要实现查看全部表和只查看存在差异的表。l 需要实现参与比较的两个数据文件的同步和异步查看。l 需要实现查看全部表和查看存在差异的表。l 修改数据是需要实现修改数据库的动态切换。l 修改数据只针对新生成的数据文件,参与比较的两个文件不变。3.4产品模块划分3.4.1模块划分本系统划分为文件输入模块、数据比较模块、数据修改模块和新数据文件管理模块四个模块,具体信息如表3-1:表31模块划分table 3-1 module partition模块划分子模块文件导入模块文件类型匹配检查生成数据库连
11、接串数据比较模块表结构匹配检查数据量匹配检查数据比较比较结果显示数据修改模块切换数据库的逻辑处理动态存储要修改的表新数据文件管理模块保存修改数据生成新数据文件3.4.2文件导入模块功能描述:此模块负责导入两个access数据库文件,并与对应的两个access数据库取得连接。 文件类型匹配检查表32文件类型匹配检查table 3-2 check the file type matches名称、标识符文件类型匹配检查功能描述检查导入的两个数据文件是否都为access数据文件输入两个数据文件操作序列在导入两个数据库文件后执行输出1、若两个文件都是access数据文件,继续执行;2、若两
12、个文件不都是access数据文件,作出提示。生成数据库连接串表33生成数据库连接串table 3-3 database connection string generated名称、标识符生成数据库连接串功能描述生成两个数据库文件对应的连接字符串输入两个数据库文件路径操作序列在导入两个数据库文件,并检查类型匹配通过后执行输出两个access数据库的连接串3.4.3数据比较模块功能描述:对两个数据库中结构相同的数据表中的数据进行比较,差异数据作出明确标识。 表结构匹配检查表34表结构匹配检查table 3-4 table structure matching check
13、名称、标识符表结构匹配检查功能描述对名称相同的两个表进行结构检查输入两个数据库中名称相同的两个表操作序列获取数据库连接并取得两个表后执行输出1、若两个表结构相同,则继续执行; 2、若两个表结构不同,则提示不能进行比较。 数据量匹配检查表35数据量匹配检查table 3-5 check the amount of data matching名称、标识符数据量匹配检查功能描述检查两个数据表的数据量是否相同输入两个结构相同的数据表操作序列表结构匹配检查通过后执行输出1、 若两个数据表的数据量相同,则继续执行; 2、 若两个数据表的数据量不相同,则提示不能进行比较。 数据比
14、较表36数据比较table 3-6 data comparison名称、标识符数据比较功能描述对两个数据表中的每一个数据进行比较输入两个结构和数据量都相同的数据表操作序列在表结构匹配检查和数据量匹配检查都通过后执行输出差异数据所在位置比较结果显示表37比较结果显示table 3-7 comparison of results名称、标识符比较结果显示功能描述将对两个表中数据比较的结果显示出来输入1、 两个进行比较的数据表2、 差异数据所在位置操作序列在数据比较完成后执行输出1、 对没有差异的数据正常显示; 2、 对存在差异的数据用红色标记,其所在行用蓝色标记。3.4.4数据修改模块
15、 切换数据库的逻辑处理表38切换数据库的逻辑处理table 3-8 logic processing of switch database名称、标识符切换数据库的逻辑处理功能描述处理切换数据库时的逻辑关系输入1、 上一次选择的数据库2、 当前选择的数据库操作序列在比较结果显示、新数据库文件生成后执行输出当前选择表的基本信息及其中的数据补充说明动态存储要修改的表表39动态存储要修改的表table 3-9 dynamic storage modification table名称、标识符动态存储修改的表功能描述将当前选择的表中的数据存储到新数据库文件中(选择是在两个数据库
16、中具有相同名称的两个结构和数据量都相同的表之间进行)输入当前选择表的基本信息及其中的数据操作序列在生成新数据库文件、选择要修改的数据库后后执行输出将获得的表的数据更新到新数据库文件中补充说明3.4.5新数据文件管理模块保存修改的数据表310保存修改的数据table 3-10 save the modified data名称、标识符保存修改的数据功能描述将修改后的数据保存到新数据文件对应的表中输入1、 修改数据的位置2、 修改后的值操作序列在修改数据后执行输出1、 界面上显示修改后的值; 2、 修改后的值保存到了新数据文件中。补充说明生成新数据库文件表311生成新数据
17、库文件table 3-11 generate a new database file名称、标识符生成新数据库文件功能描述生成一个新数据库文件输入默认修改数据库的连接串操作序列在生成数据库连接串后执行输出新的数据库文件(其中的表和表中的数据与默认选择表所在数据库相同)所在路径补充说明3.5未来可能出现的需求及解决方案(1) 两个数据录入人员录入数据质量统计:描述:现需求要求修改数据时只针对新生成的数据库文件,两个进行比较的数据库文件中的数据不变。可能添加对原数据文件与新生成的数据文件对比取得的数据质量的统计数据。解决方案:在改变要修改的表时,针对修改前的表进行数据比较和统计,生成新数据库文件时总
18、合这些单个表的统计数据,得出两个数据录入人员录入数据的质量统计。3.6故障处理要求(1) 程序在运行时主要会出现两种错误:l 由于输入信息格式不正确或类型不对应产生的错误。l 由于两个数据库中一对同名表的结构不同导致无法比较。(2) 出错处理对策:对于第一种错误,须在输入修改数据后对修改后的数据进行分析,若符合要求则更新,若不符合要求则恢复原来数据并作出提示。对于第二种错误,须在显示表时对这一对表的结构进行判断,若相同则正常显示,若不同则不显示,并作出提示。4概要设计4.1系统设计目标4.1.1近期目标:(1) 界面设计合理化界面设计的好坏直接影响用户使用软件的体验,简单、易用、明了的界面可是
19、使用户使用起来非常的方便、舒服。本软件在设计时尽力考虑到以上的原则:数据库文件中需要查看的表比较多所以考录用treeview控件,展开后可全部显示,方便查找;突出数据显示区域,保证界面美观的情况下把这一区域做到最大;两个显示表中数据的datagridview控件上下对齐摆放,以方便同步操作和查看。(2) 系统实用性系统的设计应注重与现有系统的结合,尽量的减少冗余和流程上的改变,使得使用人员操作简便、易懂易学,最大限度的满足各项功能要求。系统界面统一、提示准确、操作简单。(3) 系统的健壮性和可靠性系统总最容易引起错误的地方在于两个数据库及其中表的结构的比较,因此必须对两个数据库及其中表的结构进
20、行可靠的检测,在系统实现过程中采用完备的异常处理机制,对各个异常进行实时处理提醒,尽量保证程序运行的可控性,使得到的结果符合实际需要。4.1.2长远目标实现系统的二次开发(1) 使用三层架构增加系统的可维护性3通常意义上的三层架构是将整个业务应用划分为:表现层(ui)、业务逻辑层(bll)、数据访问层(dal)。区分层次的目的是为了“高内聚、低耦合”的思想。表现层(ui):通俗的讲是展现给用户的界面,即用户使用一个系统时的所见所得。业务逻辑层(bll):针对具体问题的操作,也可以说是对数据层的操作,对数据业务逻辑处理。数据访问层(dal):该层所作事物直接操作数据库,针对数据的添加、删除、修改
21、、更新、查找等。三层架构的原理是系统的主要功能和业务逻辑都在bll层进行处理,bll作为ui与dal的中间层。使用三层架构可以降低层与层之间的依赖,是开发人员可以只专注于整个结构的某一层,同时有利于各层逻辑的复用。三层架构也存在一些缺点:由于采用分层的结构,很多业务所需的数据必须通过中间层来获取,这样降低了系统的性能,另外如果在bal层增加了一项业务也有可能导致ui和dal相应的级联修改。应该注意的是三层架构的程序并不是把项目分为ui、bll、dal三个模块就算是三层了。三层程序还不惜遵循以下的规则:l 最关键的,ui只是一个外壳,不能包含任何业务逻辑的处理。l 设计时应该从bll而不是ui出
22、发。l dal需要在一定的程度上抽象到与系统无关。l ui与dal不能发生关联,任何关联必须通过bll来处理。4.2系统结构在第三章“需求分析”中已经介绍了系统的各个功能描述,这一节主要介绍用powerdesigner设计的系统uml4 5类图和整个系统运行的时序图。4.2.1系统类图系统类图如图41所示:图4-1系统类图figure 4-1 system class diagram4.2.2类功能描述本系统采用三层架构设计,以上各个类在三层中的分布如下:l ui:frmimportfile类、frmshowresult类。l bll:fileoperater类、treeviewoperate
23、r类、comparisonitemmanager类、comparisonmanager类。l dal:usercontrol类、daooperater类。(1) frmimportfile类图4-2文件导入窗体类figure 4-2 the form class of import filefrmimportfile是文件导入窗体类,他的作用是导入数据文件取得文件的路径等信息,并且通过它可以打开frmshowresult窗体。(2) frmshowresult类图4-3结果显示窗体类figure 4-3 the form class of show resultfrmshowresult窗体时
24、本软件的主要窗体,他负责两个数据库中匹配的所有表表、所选择表中的数据及两个表中数据比较完成后结果的显示。(3) fileoperater类图4-4文件操作类figure 4-4 the class of operate filefileoperater是文件操作类,能够实现将文件复制或移动到指定路径。(4) comparisonitemmanager类图4-5对比项管理类figure 4-5 the class of manage comparison itemcomparisonitemmanager是具体的本系统操作的文件类,它继承自fileoperater类,通过它可以对一个系统中使用的
25、文件进行各种操作。(5) treeviewmanager类图4-6 treeview控件管理类figure 4-6 the class of manage treeview controltreeviewmanager是针对frmshowresult窗体中的treeview控件进行操作的类,它能实现treeview控件的各种操作。(6) comparisonmanager类图4-7对比操作管理类figure 4-7 the class of manage comparison operatecomparisonmanager类是对两个参与比较的类进行处理的类,它能实现两个数据文件的比较等基于两
26、个文件的处理。(7) usercontrol类图4-8数据访问类figure 4-8 the class of data accessusercontrol类是数据处理类,它使用ado.net能实现对access数据的各种处理。由于三成架构的使用,它与系统无关。(8) daooperater类图4-9 dao数据访问类figure 4-9 the class of dao data access与usercontrol类同为数据处理类,它的存在原没有必要,但是由于ado.net不能方便的取得access数据库表中的caption属性,所以添加此类来实现对access数据库表中caption属性
27、的操作。顾名思义,它用的是dao技术。4.3系统流程4.3.1系统总体时序图图4-10系统总体时序图figure 4-10 overall system timing diagram4.3.1系统时序图分析(1) 消息1-6描述导入两个数据库文件。消息1:导入一个数据库文件消息2:判断此数据库文件是否为access数据库文件消息3:若导入的文件为access数据库文件,返回此文件的路径(2) 消息7-11描述导入两个数据库文件后,数据质量检测员单击开始扫描按钮,frmshowresult窗体的显示和初始化。消息9:取得两个导入的access数据库文件中名称相同的表的集合。消息11:将取得的集合
28、绑定到treeview控件上(3) 消息12-24描述用户选择要进行比较的表,对数据进行比较的过程。消息13:检查两个参与比较的表的结构是否相同消息15:表结构匹配检查通过后检查两个参与比较的表的数据量是否相同消息17:取得两个数据库中对应表的数据消息19:将取得的数据绑定到frmshowresult上两个datagridview中消息20:通过复制默认修改的数据库生成新数据文件消息22:取得两个数据库文件中存在差异的单元消息23:标记差异数据所在单元格(4) 消息25-26描述用户更改要修改的数据库后,更新新数据文件中数据。消息25:更新新数据库文件中数据(5) 消息27-28描述用户更新表
29、数据后,更新新数据文件中数据。消息28:更新新数据库文件中数据消息25与28的差异在于,消息25的操作是通过循环更新所有存在差异的数据,消息28的操作是修改完一个单元格的数据后,修改单个数据。实际上在25中存在对28的调用。(6) 消息29-30描述用户点击生成新数据库文件按钮后将修改后的新数据库文件移动到指定路径下。4.4数据对比解决方案的评估不足:数据对比解决方案是基于两个从参与比较的数据文件中取得的数据,两个都正确、或有一个正确或两个都错误但错误数据不同这种假设的,所以如果两个数据都错误且错误数据相同则不能发现。建议:在使用本系统检测完成后,对特别重要的数据仍要进行人工检查,尽力减少错误
30、带来的损失。5 系统功能实现5.1 文件导入模块功能实现文件导入是整个系统操作的起始点,在系统中这一模块负责使用户方便的选择并导入两个access数据库文件并取得两个文件的连接串,为以后的操作坐下准备。文件导入界面如图6-1所示:图6-1文件导入界面figure 6-1 file import interface5.1.1 文件类型匹配检查检查导入文件是否为access数据库文件,若不是作出提示。实现代码如下:/ <summary>/ 判断指定文件是否为access数据文件 / </summar> / <returns></returns> pu
31、blic bool ismatchfiletype( ) bool ismatchfiletype = false; string a = getfilename(); if (regex.ismatch(getfilename(), ".mdb$") ismatchfiletype = true; else ismatchfiletype = false; return ismatchfiletype;输入文件不是access数据文件时,提示消息框如图6-2所示:图6-2文件类型错误消息框figure 6-2 file type error message box5.2
32、数据比较模块数据比较模块是本系统的主要部分也是难点所在,它主要实现对两个数据库文件中具有相同名称、相同结构、相同数据量的表中的数据进行比较,并把差异数据明确标记出来,以供查看和修改。数据比较界面如图6-3所示:图6-3数据比较界面figure 6-3 interface of comparison data5.2.1 表结构匹配检查表结构匹配检查用于查看两个参与对比的表的结构是否相同,若不相同则不能进行比较,并作出提示。实现代码如下:/ <summary>/ 取得access数据库文件中指定表的结构信息/ </summary>/ <returns></
33、returns>public dataset gettableproperty(string tablename) try if (_oledbcon.state = connectionstate.closed) _oledbcon.open(); dataset ds = new dataset(); datatable tableproperty = _oledbcon.getoledbschematable(oledbschemaguid.columns, new object null, null, tablename, null ); ds.tables.add(tablep
34、roperty); return ds; catch return null; finally _oledbcon.close(); / <summary>/ 比较两个数据表的结构是否相同/ </summary>/ <returns></returns>public string tablestructcompare() string strstructinfo = "" dataset dsfirst = _firstuc.gettableproperty(tablename); dataset dssecond = _se
35、conduc.gettableproperty(tablename);if (dsfirst.tables0.rows.count = dssecond.tables0.rows.count) int rowcount = dsfirst.tables0.rows.count; for (int i = 0; i < rowcount; i+) string firstcolumnname = dsfirst.tables0.rowsi.itemarray3.tostring().trim(); string secondcolumnname = dssecond.tables0.row
36、si.itemarray3.tostring().trim(); if (firstcolumnname != secondcolumnname) if (strstructinfo = "") strstructinfo = "在两个数据库文件中的("+firstcolumnname+"与"+secondcolumnname+")" else strstructinfo += "、("+firstcolumnname+"与"+secondcolumnname+")
37、" if (strstructinfo != "") strstructinfo += "不是同一字段" return strstructinfo; else strstructinfo = "在两个数据库文件中的字段数不相同" return strstructinfo; 表结构不匹配时提示消息框如图6-4所示:图6-4表结构不同消息框 figure 6-4 table struct is difference message box5.2.2 数据量匹配检查检查两个数据库中相同名称且结构相同的表的数据量是否相同,若不相同则
38、不能进行比较,并作出提示。实现代码如下:/ <summary>/ 比较两个表中的数据量/ </summary>/ <returns></returns>public bool tablerowcountcompare() string strsql = "select * from "+tablename +" order by "+ _firstuc.getkeyname(tablename); dataset dsfirst = _firstuc.execdataset(strsql); dataset
39、 dssecond = _seconduc.execdataset(strsql);if (dsfirst.tables0.rows.count = dssecond.tables0.rows.count) return true; else return false; 5.2.3 数据比较将要比较的两个表分别绑定在两个datagridview中,然后对两个datagridview上的每一个位置相同的单元格中的数据进行比较。5.2.4 比较结果显示在数据比较过程中将存在差异的数据所在单元格的背景色设成红色,将单元格所在的行背景色设成蓝色,效果如图6-5所示:图6-4比较结果显示figure 6
40、-4 show the result of comparison实现代码如下:/对两个表中的每一个单元进行比较for (int i = 0; i < dgdfirst.rowcount; i+) bool isexistdifferent = false; for (int j = 0; j < dgdfirst.columncount; j+) string first = dgdfirst.rowsi.cellsj.value.tostring().trim(); string second = dgdsecond.rowsi.cellsj.value.tostring().t
41、rim(); if (first != second) _thediffcount+; /设置差异单元格的背景色 dgdfirst.rowsi.cellsj.style.backcolor = color.red; dgdsecond.rowsi.cellsj.style.backcolor = color.red; isexistdifferent = true; if (isexistdifferent) _thediffrowcount+; /设置差异行的背景色 dgdfirst.rowsi.defaultcellstyle.backcolor = color.skyblue; dgds
42、econd.rowsi.defaultcellstyle.backcolor = color.skyblue; 为了方便同时产看两个表中的数据,可以是显示两个表中数据的datagridview同步操作,代码如下:/ <summary>/ 使两个datagridview同步操作/ </summary>/ <param name="sender"></param>/ <param name="e"></param>private void dgdfirst_scroll(object s
43、ender, scrolleventargs e) if (_operatestyle = "synchronize") if (dgdfirst.rowcount != 0) dgdsecond.firstdisplayedscrollingrowindex = dgdfirst.firstdisplayedscrollingrowindex; dgdsecond.horizontalscrollingoffset = dgdfirst.horizontalscrollingoffset; / <summary>/ 使两个datagridview同步操作/ &
44、lt;/summary>/ <param name="sender"></param>/ <param name="e"></param>private void dgdsecond_scroll(object sender, scrolleventargs e) if (_operatestyle = "synchronize") if (dgdfirst.rowcount != 0) dgdfirst.firstdisplayedscrollingrowindex = dgds
45、econd.firstdisplayedscrollingrowindex; dgdfirst.horizontalscrollingoffset = dgdsecond.horizontalscrollingoffset; 5.3 数据修改模块5.3.1 切换数据库的逻辑处理需求要求:两个参与比较的数据库文件不变,修改只针对新数据文件,且新数据文件中必须包含两个数据文件中相同的数据和修改后的数据。处理方法:新数据文件c是通过复制两个数据文件a和b中的一个得来,假设复制的是数据文件a,这样c刚生成时其中的数据就和a中的数据完全相同。当切换要修改的数据库时,c中的数据就要更新为当前选择的要修改的
46、数据库中的数据。5.3.2 动态存储要修改的表参与对比的数据库文件为a和b,新数据库文件为c,默认复制a中的数据,现在要修改的两张表a与b分别来自a与b,c中对应的表为c,此时c等于a。当我们选中要修改 b中的数据时,就用b中数据更新c中数据,更新完后c等于b。代码实现如下所示:/ <summary>/ 用第二个路径中的文件修改第一个路径中的文件/ </summary>public void change()string strsql = "select * from "+tablename +" order by "+ _firstuc.getkeyname(tablename); dataset dsfirst = _firstuc.execdataset(strsql); dataset dssecond = _seconduc.execdataset(strsql); for (int i = 0; i < dsfirst.tables0.rows.count; i+) for (int j = 0; j < dsfirst.tables0.columns.count; j+) object strfirstvalue = dsfirst.tables0.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河北省承德市隆化县第二中学2024-2025学年九年级上学期期中考试化学试题(无答案)
- 2024年度云南省高校教师资格证之高等教育学真题练习试卷B卷附答案
- 赣南师范大学《体育保健学》2023-2024学年第一学期期末试卷
- 阜阳师范大学《体育舞蹈》2023-2024学年第一学期期末试卷
- 阜阳师范大学《公司治理》2023-2024学年第一学期期末试卷
- 福建师范大学《应用统计学》2022-2023学年第一学期期末试卷
- 福建师范大学《通信系统》2022-2023学年第一学期期末试卷
- 福建师范大学《实变函数论》2023-2024学年第一学期期末试卷
- 护理健康教育实施课件
- 福建师范大学《环境影响评价案例分析》2022-2023学年第一学期期末试卷
- DZT0233-2011矿山地质环境保护与恢复治理方案编制规范
- MOOC 中国文化概论-华南师范大学 中国大学慕课答案
- 风能发电的电网接入技术
- 初中语文作文专项突破课讲义
- 医疗风险防范培训
- 初中语文大单元汇报课件1
- 患者走失时的应急预案及流程
- 小学语文 四年级上册 《第二单元》作业设计
- 幼儿教师教研指导实践
- PDT集群无线技术规范培训计划
- (高清版)TDT 1047-2016 土地整治重大项目实施方案编制规程
评论
0/150
提交评论