当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘要:在分析了用户需求的基础上,结合.Net和Oracle9i数据库,开发了一种经济一体化的信息管理系统。该系统根据用户权限自动显示其权限内的工作内容,并伴有自动计算、查找、统计等功能。实际应用证明,该系统操作界面友好,用户操作简明快捷,系统运行稳定可以实现信息的实时查询和处理。

引言

近年来,随着油田采油厂生产规模的扩大和经济技术一体化工作的不断加深,数据的精细化管理要求越来越高。面对种类繁多的数据和报表,传统的人工加半自动化的管理方法,已经跟不上现代化信息管理的步伐。在这种油田信息化发展的大背景下,基于C/S架构,以.NET为开发平台,同时动态链接Oracle9i数据库的经济一体化信息管理系统应运而生。该系统可根据用户的权限,自动显示其权限内的工作内容,并伴有自动计算、查找、统计等功能。本文在分析了用户需求的基础上,给出了整个系统的设计与关键技术问题的解决方案。

1需求分析

由于油田下设单位众多,在生产管理上,有的单位还未建立统一实物消耗统计管理系统,数据采集方式多、来源广、差异大,不能形成系统的历史数据沉淀,没有形成完善的统计管理工作责任体系,因此,目前亟需一套管理系统来达到如下需求。

录入人员、审核人员和管理员登录时,系统会根据其所属单位及权限,自动显示其权限内需要录入、审核或查询的报表。

审核人员对录入人员录入的数据进行审核,以保证数据真实、可靠后,由后台发布平台自动计算生成管理报表供查询人员进行查阅,查询人员只能查看到自己权限下的管理报表。

后台管理人员可进行用户管理、下设单位关系的维护以及后台价格库的维护等后台操作。

根据对库存量和消耗量的统计,自动实现各级单位实物工作量的动态管理和便捷查询,能够及时了解各单位材料(燃料)的消耗、库存及下一步需求等情况,为物料管理提供参考。

2系统设计

针对客户需求和油田经济一体化管理系统的特点,本系统采用.NET多层架构技术,运用WinForm等开发工具,以Oracle9i数据库为基础来进行开发。

Microsoft.NET技术是最新的数据库应用开发工具,可以高效地开发可靠、稳定又安全的各类数据库应用程序。系统的客户端就是采用.NET开发平台中的WindowsForm(简称

winform)来创建应用程序的用户界面,并可以创建丰富的窗体和可视化空间,以达到界面美观、友好的效果。开发工具运用MicrosoftVisualStudio2008,并使用.NET支持的C#开发语言进行软件的开发,确保系统数据的实时性、稳定性、安全性。

油田的生产管理过程中有大量的数据需要同时、快速的进行存储和读取,后台数据库需要强大的Oracle9i数据库进行链接。Oracle9i由两个产品构成:一个是Oracle9i数据库,它集成了集群的功能;另一个是Oracle9i应用服务器,它集成了高速缓存融合的技术。这两个产品合起来,就能给企业提供一种高可伸缩性、高可靠性和高性能的应用。

经济一体化管理系统由录入系统、审核系统、查询和后台管理系统等分系统组成。图1所示是本系统的组成图。

图1  经济一体化管理系统构成

用户登录系统时,可以根据用户注册时所分配的权限分别进入录入系统、审核系统、查询系统和后台管理系统。

在录入系统,录入人员通过本系统可将数据录入其权限内的报表中。数据录入、修改完毕后,单击右下角的'保存”按钮,即可完成报表的录入或修改。已审核的报表,“保存”按钮为灰色,数据无法更改。

在审核系统,审核人员通过本系统审核其权限内的报表,在确保数据的可靠、完整后,单击右下角的“审核”按钮,即可完成报表的审核。已审核的报表,“审核”按钮为灰色,不可点击。

通过查询系统,用户可通过本系统查阅其权限内的所有报表。可查询的报表分为综合管理报表和条件查询报表。两种报表都可以通过选择月份进行跨月累计查询以及Excel导出功能,同时综合管理报表可以点击右键进行线状/柱状/饼状的图形分析,条件查询报表可通过点击下属单位进行多级追踪查询。

在后台管理系统,后台管理人员可通过本系统对整个系统进行后台维护。主要功能有数据发布、用户管理、下设单位关系维护、后台价格库维护、单井/炉维护等。其中,数据发布就是对程序控制执行存储过程生成管理报表;用户管理主要是增删用户或更改用户具体的工作内容和权限;下设单位关系维护是增删下设单位,以适应油田的长期发展;后台价格库维护就是定时对生产投入的物料价格进行实时更新,以实现量价分离的管理目标;单井/炉维护是增删井/炉以及对井/炉的属性进行修改。

3关键问题及解决方案

3.1.Net与Oracle的链接

.Net与Oracle数据库可以通过多种方法来实现链接,既可以通过使用ODBC或OLEDB标准接口对数据库进行链接,也可以通过.Net框架提供的专用接口System.Data.OracleClient.dll组件(ADO.Net组件)进行链接。这款组件是微软专门针对Oracle数据库开发而设计的,具有速度快、性能好的特点,是值得推荐使用的方式。

建立链接需要首先添加Sytem.Data.OracleClien命名空间,将System.Data.OracleClient.dll加入到项目中,接下来就可以创建和数据库的链接了。建立链接的主要代码如下:

添加命名空间:

usingSystem.Data.OracleClient;

创建和数据库的链接:

OracleConnectionconn=

NewOracleConnection("datasource=remotedb;UserId=scott;Password=scott;");

//其中remotedb为oracle客户端tnsnames.ora配置文件中的网络服务名

下面是新建一个对数据库操作的实例:

OracleCommandoraCmd=newOracleCommand("select*fromuser",conn);

OracleDataReaderoraRD=oraCmd.ExecuteReader();

//DataReader提供一种从数据库读取行的只进流的方式打开数据库链接:

try{

conn.Open();

if(odr.Read())

{…}

Conn.close();

catch

{…}

3.2多线程与委托的运用

后台管理系统的发布功能需要程序按一定顺序调用执行后台所有的存储过程,在此过程中需要执行数百个存储过程,并且每个存储过程涉及的数据量也非常大,因而可能会导致发布窗体经常出现假死状态。这是由于系统在进行大量运算时,为了避免主线程界面这种假死状态,需要使用另一个线程来控制。

多线程的应用可以使程序同时完成多个任务,可以让占用大量处理时间的任务定期将处理时间让给别的任务使用。因此,可以创建一个新的线程来执行发布功能,从而防止主线程界面假死。

在.Net中,可用如下代码来创建并启动一个新的线程:

ThreadRun_Pro_Two=newThread(newThreadStart(Run));Run_Pro_Two.IsBackground=true;

Run_Pro_Two.Start();

但是,在很多时候,新的线程中需要与UI进行交互,而在.Net中不允许直接这样做,因为Windows窗体基于本机Win32窗口,而Win32窗口从本质上而言是单元线程。STA模型意味着可以在任何线程上创建窗口,但窗口一旦创建后就不能切换线程,并且对它的所有函数调用都必须在其创建线程上发生。STA模型要求,从控件的非创建线程调用控件上的任何方法都必须被封送到(在其上执行)该控件的创建线程。基类Control为此目的提供了若干方法(Invoke、BeginInvoke和Endlnvoke)。

Invoke生成同步方法调用时,如果从另一个线程调用控件方法,则必须使用控件的一个Invoke方法来将调用封送到适当的线程。Invoke调用方法分为两步:第一步是定义与函数功能对应的委托;第二步是将参数以及函数名通过委托实例传递给Invoke。

调用方法如下:

privatedelegatevoidInvokeDelegate_2(inti,intj,Exceptione);

//定义一个函数的委托

privatevoidInvoke_Datagridview_2(inti,intj,Exceptione)//定义函数

}

在主线程中调用:

this.Invoke(newInvokeDelegate_2(Invoke_Datagridview_2),newobject[]{i_one,j_one,ex});

//i_one,j_one,ex为主线程中的变量

最后在主线程中,终止线程:

if(Run_Pro_Two.IsAlive)Run_Pro_Two.Abort();

通过应用多线程和委托方法可有效防止发布数据窗口假死的现象。

4结语

结合.Net和Oracle数据库开发的信息管理系统,操作界面友好,用户操作简明、快捷,系统运行稳定,并能够实现信息的实时查询和处理。目前,本文设计的系统已经投入运行,并取得了较好的经济社会效果。

20211018_616c5dbce0856__经济一体化信息管理系统研究

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

甲类电源是一种开关式电源,它通过快速开关来控制电压,使输出电压保持恒定。甲类电源的输出电流波形接近直流,能够提供高效率和高功率输出。

关键字: 甲类电源 线性电源 电源

现在的智能家居越来越受欢迎,市面上出现了各式各样的无线收发模块,功能也各不相同,当然了,大家不能盲目的去采购,这样可能会带来一些不必要的损失。

关键字: 无线收发模块 功耗 网络协议

直流电是指电流方向始终保持不变的电流。在实际应用中,我们经常需要调整直流电的电流大小,以满足不同的需求。本文将从多个方面详细阐述直流电如何调节电流。

关键字: 直流 电流 负载调节

在人工智能的快速发展中,加强AI监管与推动AI技术的进步同等重要。从技术角度来看,可以通过可解释AI等技术手段增强AI的可信度。

关键字: 人工智能 AI 增强AI

随着科技的快速发展,人脸识别技术已经广泛应用于各个领域,如手机解锁、支付验证、门禁系统等。然而,有时我们可能会遇到人脸识别一直失败的情况,这不仅影响了用户体验,还可能引发安全隐患。本文将深入探讨人脸识别失败的原因,并提供...

关键字: 人脸识别 人工智能

随着科技的快速发展,人工智能(AI)逐渐从科幻概念变为现实,其应用广泛渗透到各行各业,为人类社会带来了前所未有的便利与机遇。然而,正如任何新兴技术一样,人工智能的发展也面临着诸多困难与挑战。本文将深入剖析人工智能发展所面...

关键字: 人工智能 AI

在科技迅猛发展的今天,人工智能(AI)已经从一个前沿概念转变为全球范围内的热门话题,深刻影响着我们的日常生活、工作和思维方式。本文将对当前人工智能的现状进行深入分析,从技术发展、应用领域、市场竞争以及挑战与机遇等多个维度...

关键字: 人工智能 AI

在科技的浪潮中,人工智能(AI)已经从一个遥不可及的概念,逐渐转变为影响我们日常生活的现实力量。无论是语音识别、图像识别,还是自动驾驶、医疗诊断,人工智能都展现出了强大的潜力和无限的可能性。那么,未来的人工智能发展前景又...

关键字: 人工智能 AI

在智能家居日益普及的今天,无线开关作为实现家居自动化的重要工具,受到了越来越多消费者的青睐。然而,对于许多家庭来说,如何将现有的普通灯具接入无线开关,实现远程控制,仍然是一个值得探讨的问题。本文将详细阐述普通灯具接入无线...

关键字: 无线开关 智能家居

本文旨在为读者提供一篇详尽的AWVS 13使用教程,从安装配置到实战应用,全面解析这一强大的Web应用安全扫描工具。通过本文的学习,读者将能够掌握AWVS 13的基本操作,提高Web应用的安全性。

关键字: awvs13 Web应用
关闭
关闭