国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于.Net的地下水污染調(diào)查信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2015-03-02 12:16:21王瀟媛等
軟件導(dǎo)刊 2015年1期
關(guān)鍵詞:數(shù)據(jù)表控件客戶端

王瀟媛等

摘要:針對(duì)當(dāng)前地下水污染調(diào)查信息記錄過(guò)程中存在的數(shù)據(jù)錄入慢、數(shù)據(jù)共享難等問(wèn)題,提出基于B/S模式的地下水污染調(diào)查系統(tǒng)的設(shè)計(jì)思路,并闡述其具體實(shí)現(xiàn)過(guò)程。系統(tǒng)設(shè)計(jì)實(shí)驗(yàn)采用.Net Framework作為開發(fā)平臺(tái),C#作為開發(fā)語(yǔ)言,SQL Server作為數(shù)據(jù)庫(kù),同時(shí)整合了Web GIS技術(shù),設(shè)計(jì)了地下水水點(diǎn)信息的數(shù)據(jù)錄入、查詢、分析、制圖、評(píng)價(jià)和報(bào)表等功能。通過(guò)實(shí)際使用該系統(tǒng)實(shí)現(xiàn)了預(yù)期目標(biāo)。

關(guān)鍵詞:地下水污染調(diào)查;信息系統(tǒng)設(shè)計(jì);.Net;數(shù)據(jù)庫(kù)設(shè)計(jì);GIS

DOIDOI:10.11907/rjdk.143710

中圖分類號(hào):TP319

文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào)文章編號(hào):16727800(2015)001008004

0 引言

隨著現(xiàn)代工農(nóng)業(yè)的發(fā)展和人類活動(dòng)的頻繁影響,不同種類的污染物通過(guò)各種渠道進(jìn)入地下水系統(tǒng),導(dǎo)致地下水水質(zhì)下降,特別在一些大中型城市,污染源直接威脅人們的正常生活[1]。與此同時(shí),人類對(duì)水資源的需求量日趨增長(zhǎng)。當(dāng)前,地下水源已占全國(guó)總給水量的20%,西北地區(qū)和華北平原某些相對(duì)缺水的城市,地下水開發(fā)利用比例達(dá)到72%和66%[2]。在許多城市,地下水幾乎是唯一的供水水源。

地下水污染調(diào)查評(píng)價(jià)是地下水污染防治的基礎(chǔ)[3],以準(zhǔn)確高效掌握地下水水質(zhì)和污染情況。本文設(shè)計(jì)了一個(gè)基于.Net的地下水污染調(diào)查信息系統(tǒng),利用現(xiàn)代信息技術(shù),為科研人員進(jìn)行地下水污染調(diào)查研究提供支撐。

1 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

1.1 系統(tǒng)設(shè)計(jì)目標(biāo)

系統(tǒng)應(yīng)用GIS技術(shù)和空間數(shù)據(jù)處理技術(shù),建立一個(gè)基于.Net Framework框架的B/S 模式結(jié)構(gòu)的Web應(yīng)用程序[4]。系統(tǒng)在設(shè)計(jì)和開發(fā)過(guò)程中遵循軟件工程“時(shí)效性、易用性、可靠性、擴(kuò)展性、開發(fā)性”相統(tǒng)一的原則[5],采用三層架構(gòu)作為軟件設(shè)計(jì)框架,為系統(tǒng)功能擴(kuò)展奠定基礎(chǔ)。具體設(shè)計(jì)路線如圖1所示。

圖1 地下水污染調(diào)查信息系統(tǒng)研究技術(shù)路線

1.2 系統(tǒng)開發(fā)技術(shù)

1.2.1 .Net三層架構(gòu)

三層架構(gòu)將整個(gè)軟件框架分為“表示層—業(yè)務(wù)邏輯層—數(shù)據(jù)庫(kù)訪問(wèn)層”三層,各層分工合作,實(shí)現(xiàn)數(shù)據(jù)交互[6]。其目的在于實(shí)現(xiàn)軟件開發(fā)中所要求的“高內(nèi)聚、低耦合”,采用“分而治之”的方法,將軟件功能劃分開來(lái),從而有利于控制、延展和資源分配[7]。

1.2.2 AJAX技術(shù)

AJAX(Asynchronous JavaScript and XML)實(shí)現(xiàn)瀏覽器無(wú)需刷新整個(gè)頁(yè)面內(nèi)容,只需要根據(jù)用戶需求,完成網(wǎng)頁(yè)中部分控件與服務(wù)器之間的交互[8]。AJAX技術(shù)的標(biāo)準(zhǔn)化展示主要通過(guò)XHTML和CSS實(shí)現(xiàn),同時(shí)其動(dòng)態(tài)顯示和交互部分主要應(yīng)用DOM技術(shù)完成。異步數(shù)據(jù)讀取時(shí),AJAX通過(guò)XMLHttpRequest實(shí)現(xiàn),最后應(yīng)用JavaScript進(jìn)行數(shù)據(jù)綁定[9]。

1.2.3 JQuery技術(shù)

JQuery是輕量級(jí)JS庫(kù)[10],不僅兼容CSS3層疊樣式表,而且對(duì)主流瀏覽器也可兼容。JQuery能夠?qū)崿F(xiàn)動(dòng)畫效果,使開發(fā)人員更為簡(jiǎn)易地處理HTML Document,快速開發(fā)出交互性強(qiáng)、界面友好的Web應(yīng)用程序[11]。系統(tǒng)采用JQuery和JQuery封裝下的Easy UI架構(gòu),輔助以ASP.NET技術(shù),可大幅度優(yōu)化網(wǎng)站的前端顯示。訪問(wèn)過(guò)程如圖2所示。

圖2 JQuery前后臺(tái)處理流程

1.2.4 WebGIS技術(shù)

WebGIS技術(shù)簡(jiǎn)化了客戶端軟件,以瀏覽器作為客戶端應(yīng)用程序的運(yùn)轉(zhuǎn)平臺(tái),從而形成一個(gè)“客戶層—應(yīng)用層—數(shù)據(jù)庫(kù)”的三層結(jié)構(gòu)[12]。

與傳統(tǒng)的GIS相比,WebGIS具有以下優(yōu)點(diǎn)[13]:①提高信息共享效率;②保障信息的實(shí)時(shí)性[14];③多平臺(tái)的可擴(kuò)展性;④降低系統(tǒng)成本。

2 數(shù)據(jù)庫(kù)設(shè)計(jì)

地下水污染調(diào)查信息系統(tǒng)數(shù)據(jù)標(biāo)準(zhǔn)依據(jù)《地下水污染地質(zhì)調(diào)查評(píng)價(jià)規(guī)范》[2]制定。主要考慮地下水資源量的分布情況、水文地質(zhì)結(jié)構(gòu)信息以及地下水環(huán)境數(shù)據(jù)等3個(gè)方面的數(shù)據(jù)結(jié)構(gòu)[16]。數(shù)據(jù)庫(kù)完成后系統(tǒng)可根據(jù)這些數(shù)據(jù)進(jìn)一步完成制圖及地下水污染評(píng)估等工作。

依照《地下水污染地質(zhì)調(diào)查評(píng)價(jià)規(guī)范》[2],將數(shù)據(jù)庫(kù)劃分為原始資料數(shù)據(jù)庫(kù)、綜合成果數(shù)據(jù)庫(kù)、元數(shù)據(jù)庫(kù)和用戶信息庫(kù)。原始資料數(shù)據(jù)庫(kù)主要完成數(shù)據(jù)的整理、修改編輯、匯總?cè)霂?kù)等;綜合成果數(shù)據(jù)庫(kù)主要完成空間專題制圖等;元數(shù)據(jù)庫(kù)主要建立不同需求下的元數(shù)據(jù)記錄等;用戶信息庫(kù)則存儲(chǔ)用戶的個(gè)人信息以及記錄導(dǎo)出項(xiàng)等。

(1)原始資料數(shù)據(jù)表。

原始資料數(shù)據(jù)表可以分為4大類:綜合調(diào)查類、動(dòng)態(tài)數(shù)據(jù)監(jiān)測(cè)類、樣品分析測(cè)試類和綜合施工類。

(2)綜合成果數(shù)據(jù)表。

綜合研究成果數(shù)據(jù)庫(kù)只含有單一的屬性表,以線元及多邊形表示。

(3)元數(shù)據(jù)表。

根據(jù)不同需求和工作需要,可以對(duì)原始資料數(shù)據(jù)庫(kù)和綜合成果數(shù)據(jù)庫(kù)進(jìn)行元數(shù)據(jù)采集,并將采集后的元數(shù)據(jù)記錄保存到元數(shù)據(jù)表中。

(4)用戶信息表。

用戶信息表包含三大類:用戶登陸信息表、用戶詳細(xì)信息表和用戶導(dǎo)出項(xiàng)目表。

3 系統(tǒng)功能設(shè)計(jì)

系統(tǒng)主要功能模塊如圖3所示。

圖3 系統(tǒng)功能模塊

(1)數(shù)據(jù)管理模塊。

包括原始數(shù)據(jù)錄入、修改、存儲(chǔ)、查詢以及對(duì)原有數(shù)據(jù)進(jìn)行備份與恢復(fù)等功能。

(2)圖系制表模塊。

依照用戶需求,將野外采集數(shù)據(jù)或綜合分析數(shù)據(jù),繪制成圖表。根據(jù)《地下水污染調(diào)查評(píng)價(jià)規(guī)范》[2],利用數(shù)據(jù)庫(kù)中的數(shù)據(jù),制作匯總后的圖形化數(shù)據(jù),方便用戶查看。

(3)綜合分析模塊。

綜合分析模塊分為地下水質(zhì)量評(píng)價(jià)和地下水污染綜合評(píng)價(jià)兩個(gè)子模塊。地下水質(zhì)量評(píng)價(jià)方法一般采用水質(zhì)模糊評(píng)價(jià)方法[17],水質(zhì)評(píng)價(jià)標(biāo)準(zhǔn)采用《地下水質(zhì)量標(biāo)準(zhǔn)》[18]。地下水污染綜合評(píng)價(jià)方法國(guó)內(nèi)目前還沒有統(tǒng)一標(biāo)準(zhǔn)[19]。

首先通過(guò)原始資料數(shù)據(jù)表查找符合條件的數(shù)據(jù)記錄;然后根據(jù)地下水污染調(diào)查評(píng)價(jià)規(guī)范,對(duì)已查數(shù)據(jù)進(jìn)行進(jìn)一步分析;最后將綜合成果記錄、存儲(chǔ)到元數(shù)據(jù)表中。

(4)數(shù)據(jù)統(tǒng)計(jì)模塊。

數(shù)據(jù)統(tǒng)計(jì)模塊主要用于統(tǒng)計(jì)和整合原始數(shù)據(jù)表和元數(shù)據(jù)表中的所有數(shù)據(jù)。使用.Net Framework平臺(tái)的COM組件來(lái)實(shí)現(xiàn)統(tǒng)計(jì)功能[20],將數(shù)據(jù)以Excel文件的形式發(fā)送到客戶端。

(5)用戶模塊。

將所有用戶分為兩組:普通用戶組和管理員用戶組。普通用戶可以使用系統(tǒng)的大部分功能,包括對(duì)原始數(shù)據(jù)的錄入、查詢、修改、備份、恢復(fù)以及對(duì)數(shù)據(jù)進(jìn)行分析和制圖等,但不能查看其他用戶錄入的數(shù)據(jù)。

管理員組除了普通用戶組的功能之外,還可以查看所有用戶錄入的數(shù)據(jù),并且負(fù)責(zé)對(duì)整個(gè)數(shù)據(jù)庫(kù)進(jìn)行維護(hù)。管理員可限定普通用戶的操作權(quán)限。

綜合上述思路,系統(tǒng)整體框架圖如圖4所示。

圖4 地下水污染調(diào)查信息系統(tǒng)整體框架設(shè)計(jì)

4 系統(tǒng)功能實(shí)現(xiàn)

本系統(tǒng)中最主要的部分是客戶端同服務(wù)器端、服務(wù)器端同數(shù)據(jù)庫(kù)的交互,需要使用大量的數(shù)據(jù)庫(kù)操作。同時(shí)為了優(yōu)化用戶體驗(yàn),提高輸入輸出效率,還在系統(tǒng)中加入了文件導(dǎo)入導(dǎo)出技術(shù)和查詢時(shí)的模糊查找功能。

4.1 讀取Excel文件數(shù)據(jù)

系統(tǒng)采用OLE DB的方式將Excel中的數(shù)據(jù)讀取到DataTable。首先設(shè)定連接字符串:

StringConnString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=; Extended Properties=Excel 8.0; HDR=No;IMEX=1;"。

完成設(shè)定后,使用OleDbConnection打開數(shù)據(jù)連接,用GetOleDbSchemaTable獲取Excel文件中的數(shù)據(jù),最后通過(guò)OleDbDataAdapter.Fill將數(shù)據(jù)填充Dataset。具體代碼部分,如下:

con = new OleDbConnection(ConnString);

schemaTable =con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

stringtableName = schemaTable.Rows[0][2].ToString().Trim();

cmd = new OleDbCommand(@"select * from [" + tableName + "]", con);

da = new OleDbDataAdapter();

da.SelectCommand = cmd;

da.Fill(dsModel);

con.Close();

4.2 文件導(dǎo)出功能

針對(duì)信息分析統(tǒng)計(jì)的導(dǎo)出功能,按照用戶要求,將數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行整合,然后以Excel文件的形式導(dǎo)出到用戶本地。具體實(shí)現(xiàn)代碼如下:

Application excel = new Application();

_Workbook xBk;

_Worksheet xSt;

excel= new ApplicationClass();

xBk = excel.Workbooks.Add(true);

xSt = (_Worksheet)xBk.ActiveSheet;

foreach(DataColumn col in dv.Table.Columns)

{

colIndex++;

excel.Cells[4,colIndex] = col.ColumnName;

}

foreach(DataRowView row in dv)

{

rowIndex ++;

colIndex = 1;

foreach(DataColumn col in dv.Table.Columns)

{

colIndex ++;

}

}

xBk.SaveCopyAs(Server.MapPath(".")+""+this.xlfile.Text+".xls");

ds = null;

xBk.Close(false, null,null);

excel.Quit();

4.3 文本框自動(dòng)填充功能

本文采用JQuery的AutoComplete控件。其中前后臺(tái)的交互機(jī)制,將使用ASP.NET的CallBack機(jī)制。通常,一個(gè)完整的回調(diào)過(guò)程包含以下幾個(gè)部分:①客戶端發(fā)出回調(diào)請(qǐng)求;②服務(wù)器端接收客戶端回調(diào)請(qǐng)求;③服務(wù)器端處理請(qǐng)求并回復(fù)請(qǐng)求給客戶端;④客戶端接收服務(wù)器的反饋結(jié)果并更新HTML。

觸發(fā)回調(diào)機(jī)制,首先需要在前端頁(yè)面編寫一個(gè)JavaScript函數(shù)觸發(fā)回調(diào)請(qǐng)求,具體語(yǔ)法結(jié)構(gòu)如下:

any_script_function(arg, context)

{

<%= ClientScript.GetCallbackEventReference(this, "arg", "ReceiveServerData", "context")%>;

}

利用GetCallbackEventReference(this,”arg”,”ReceiveServerData”)函數(shù),根據(jù)傳入的參數(shù),來(lái)調(diào)用實(shí)際的前臺(tái)腳本。其中this表示回調(diào)操作的控件處于當(dāng)前頁(yè)面。同時(shí),該頁(yè)面需要實(shí)現(xiàn)ICallbackEventHandler接口。此外,this參數(shù)也可以表示該頁(yè)面上某個(gè)Web控件,此時(shí)該控件需實(shí)現(xiàn)ICallbackEventHandler接口;Arg用來(lái)表示將要傳遞給RaiseCallbackEvernt的參數(shù)值;ReceiveServerData指前端頁(yè)面在回調(diào)之后將要執(zhí)行的前臺(tái)腳本。

回調(diào)機(jī)制完成之后,頁(yè)面將把數(shù)據(jù)庫(kù)中存儲(chǔ)的數(shù)據(jù)轉(zhuǎn)化為JSON格式并賦值到AutoComplete控件,具體語(yǔ)法如下:

autocomplete(url or data,[options])。

$(function () {

$("#" + "<%=this.控件ID%>").autocomplete({

source: function (request, response) {

$.ajax({

url: "Handler1.ashx",dataType: "jsonp",

jsonp: "callback",

data: "p1=" + escape(request.term) + "&callback= ",

success: function (data) {

response($.map(data, binditem));

}

});

},

}

5 結(jié)語(yǔ)

本文使用.Net Framework 作為開發(fā)平臺(tái),C#作為開發(fā)語(yǔ)言,利用計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)和WebGIS技術(shù),提出設(shè)計(jì)思路和實(shí)現(xiàn)方案。依托.Net Framework作為系統(tǒng)平臺(tái),有效提高了系統(tǒng)的穩(wěn)定性,使信息交互和維護(hù)更加便捷。本文系統(tǒng)設(shè)計(jì)開發(fā)對(duì)于其它類似信息系統(tǒng)的開發(fā),具有一定借鑒意義。

猜你喜歡
數(shù)據(jù)表控件客戶端
湖北省新冠肺炎疫情數(shù)據(jù)表
黨員生活(2020年2期)2020-04-17 09:56:30
基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
孵化垂直頻道:新聞客戶端新策略
基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
圖表
基于VSL的動(dòng)態(tài)數(shù)據(jù)表應(yīng)用研究
河南科技(2014年24期)2014-02-27 14:19:25
客戶端空間數(shù)據(jù)緩存策略
就這樣玩會(huì)VBA中常見的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
金寨县| 来凤县| 修文县| 永宁县| 兴文县| 咸丰县| 唐山市| 西峡县| 藁城市| 南漳县| 武宣县| 阿勒泰市| 武功县| 循化| 阿拉善右旗| 高雄市| 合川市| 玛多县| 富川| 新源县| 江华| 两当县| 临澧县| 剑川县| 兖州市| 龙州县| 清新县| 江山市| 临潭县| 大丰市| 驻马店市| 偏关县| 海晏县| 莆田市| 老河口市| 阿坝县| 塔城市| 达日县| 彭山县| 泗水县| 乡宁县|