999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

LINQ在水土保持管理系統開發中的應用

2011-09-27 10:43:00羅萬波
地理空間信息 2011年1期
關鍵詞:功能

羅萬波

(福建省測繪院,福建福州 350003)

LINQ在水土保持管理系統開發中的應用

羅萬波

(福建省測繪院,福建福州 350003)

介紹了.NET語言集成查詢LINQ(Language Integrated Query)的結構和原理,并利用它實現了水土保持管理系統的多種類型的數據查詢統計,通過實例的應用和分析表明LINQ技術為開發者提供了一種簡單高效的數據訪問方法。

GIS;LINQ;水土保持管理系統;.NET3.5

水土保持管理系統主要圍繞水土流失監測、治理、預防、開發建設等功能進行設計和開發,在系統中包含多種不同類型的數據源。過去對多種類型的數據源查詢需要不同的查詢語言,例如對關系數據庫我們使用SQL語言,對XML則使用XQuery語言,而LINQ大大簡化了這種情形,它提供一個固定的編程模型,能夠兼容各種數據源和數據格式,即對LINQ兼容的數據格式如XML文檔、SQL數據、ADO.NET數據集、NET集合等都能使用相同的代碼模式進行查詢。不僅如此,它還彌補了數據和對象之間的鴻溝,提高我們的開發效率,傳統的數據查詢一般是簡單的字符串,缺少編譯時類型檢查和智能感應支持,而LINQ在C#和VB里面定義了以查詢為第一位的語言,對于強類型的對象集合就可以使用熟悉的語言和操作寫出查詢,并有便捷的VS內置幫助,因此可以充分利用強類型檢查和智能感知來大幅提高編寫代碼的效率。

1 LINQ簡介

LINQ即Language Integrated Query,它是集成在.NET編程語言中的一種特性,已成為編程語言的一個組成部分。在編寫程序時,有編譯時語法檢查、豐富的元數據、智能感知、靜態類型等強類型語言的優點,并且它還可以方便地對內存中的信息進行查詢而不僅僅只是外部數據源。它是 Visual Studio 2008和.NET Framework 3.5版中一項突破性的創新,它在對象領域和數據領域之間架起了一座橋梁,它為 C#和 Visual Basic語言語法提供強大的查詢功能。LINQ引入了標準的、易于學習的查詢和更新數據模式,可以對其技術進行擴展,可支持幾乎任何類型的數據存儲。LINQ體系結構見圖1,它分為三大類型的數據:①Linq To Objects,其主要是針對CLR-Based Objects的查詢,即內存操作;②Linq Enabled ADO.NET是針對關系型數據的,它又包含三種:Linq To Datasets,Linq To Sql, Linq To Entities;③Linq To XML,針對xm l格式數據的操作。LINQ的查詢機制見圖2,所有LINQ查詢操作都由獲取數據源、創建查詢和執行查詢的三個部分組成,在LINQ中,查詢的執行與查詢本身截然不同,如果只是創建查詢變量,則不會檢索任何數據。

圖1 LINQ體系結構圖 [1]

圖2 LINQ查詢機制 [2]

2 LINQ應用

在水土保持管理系統中的水土流失動態監測模塊,需要對水土流失、工程侵蝕和崩崗的表數據進行分類查詢統計,雖然ArcEngine也提供這些功能,但是查詢語言都是以字符串形式,在VS中在對字符串的編譯過程中的錯誤檢查就大大減弱,因此采用LINQ更為簡單和高效。以下通過具體的實例對LINQ的應用進行說明。

2.1 Summarize功能實現

Summarize功能核心是對數據分類查詢統計如圖3所示,在崩崗圖層中可以根據不同的字段,對字段里的內容進行分組,在圖3里是對崩崗的形態進行分組,崩崗在當前shp文件中有瓢形、混合型、弧形、條形、爪形、茞形和陶形七種形態,然后根據所選的字段,自動判斷其類型,如數值型的就統計其總和和平均值,若是字符串型就按當前字段排序獲取最先最后獲取的字段值。如圖中的溝口寬度和防治面積,根據形態分組計算圖斑的數值總和和平均值,土壤類型則是字符型字段,它是根據分組獲取排序后最先的這個字段值。其功能完全類似ArcMap的Summarize功能[4]。

圖3 崩崗Summarize功能

在LINQ里用groupby對查詢的結果進行分組,實現的代碼極其簡單,以總和計算為例,

以上是獲取數據源、創建查詢的操作,程序運行時候,并不執行以上代碼,實現執行查詢操作代碼如下;

2.2 不同年度面積變化功能實現

根據不同年度水土流失的流失強度統計面積的變化,流失強度可分為極強烈流失、劇烈流失、強烈流失、中度流失、輕度流失和微度流失。一種流失強度就有多個圖斑或者是零個圖斑,這就涉及到表關系中的一對多的關系,由于是不同年度的數據,這就要實現多個數據表的操作。首先獲取不同流失強度的面積,代碼如下:

然后就是不同年度的各個流失強度的面積進行多個表聯合查詢,代碼如下:

運行的結果界面如圖4所示。

圖4 不同年度流失強度變化

2.2 調查報告文檔管理

微軟推出LINQ to XML,使得操作XML更簡單.更方便.更智能的XMLAPI[3]。以前的.NETXML編程模型需要使用很多冗長的DOM API,而LINQ to XML則完全可以用與DOM無關的方式與XML文檔交互,這樣不但大大減少了代碼行,而且這種編程模型可以直接映射到格式良好的 XML文檔結構。由此,采用XML作為數據載體,通過LINQ to XML提供的類實現調查報告文檔管理模塊添加、查詢、更新和刪除等操作,其實現的功能界面如圖5所示。

圖5 讀取XML的調查報告文檔功能界面

在這模塊里主要實現以下內容[5]:① 在內存中創建LINQ to XML文檔;②使用LINQ查詢創建XML文檔;③加載和解析LINQ to XML內容;④遍歷內存中的LINQ to XML文檔;⑤LINQ to XML加載;⑥LINQ to XML遍歷;⑦LINQ to XML查詢;⑧修改LINQ to XML文檔。XML操作主要通過XDocument、Xelement、Xdeclaration和Xattribute來實現的。

3結語

LINQ是VisualStudio2008和.NETFramework3.5版本中一項突破性的創新,在水土保持管理系統開發中利用它實現多種數據源的查詢統計。開發實踐表明其簡單易學、代碼少,效率高、大大縮短開發周期。它通過面向對象編程的準則應用于關系數據,簡化了面向對象編程與關系數據之間的交互,使用單一的一種語法來實現多種不同對象的查詢,為開發者提供了一種簡單高效的數據訪問方法。

[1] Am ro Khasawneh.Understanding LNQ(C#)[EB/OL].http:// www.codeproject.com/KB/linq/UnderstandingLINQ.aspx? msg=2668049,2007-06-12

[2] M icrosoft MSDN.LINQ介紹[EB/OL].Http://msdn.microsoft. com/zh-cn/library/bb397897.aspx,2007-11-01

[3] 姜玉振,李月鳳.運用LINQ to XML開發用戶登陸授權的動態菜單系統[J].電腦編程技巧與維護,2009(21):26-40

[4] 黨安榮,賈海峰,易善楨,等.ArcGIS 8Desktop地理信息系統應用指南[M].北京:清華大學出版社,2003

[5](美)克萊因.LINQ高級編程[M].北京:清華大學出版社,2009

Application of LINQ to Soil and Water Conservation Management System

by LuoWanbo

The paper introduced framework and principles o f.NET Language Integrated Query,and used it to achieve multiple types of data query statistics of the Soil and water conservation management system.It showed that LINQ technology provides simple and effective data access methods for developers by analysis of and using of the exam p les.

GIS,LINQ,soil conservation management system,.NET3.5(Page:106)

P208

B

1672-4623(2010)06-0106-03

2010-05-10

項目來源:福建省科技計劃資助項目(2008N0117)。

羅萬波,工程師,主要從事地理信息系統應用開發及航測、遙感數據處理等工作。

猜你喜歡
功能
拆解復雜功能
鐘表(2023年5期)2023-10-27 04:20:44
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
基層弄虛作假的“新功能取向”
當代陜西(2021年21期)2022-01-19 02:00:26
深刻理解功能關系
鉗把功能創新實踐應用
關于非首都功能疏解的幾點思考
基于PMC窗口功能實現設備同步刷刀功能
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡直”和“幾乎”的表達功能
中西醫結合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 999福利激情视频| 亚洲美女操| 无码精油按摩潮喷在线播放| 国产激情无码一区二区免费| 亚洲成人黄色在线观看| 一级片一区| 中国国语毛片免费观看视频| av尤物免费在线观看| 国产激情第一页| 麻豆国产在线观看一区二区| 啪啪啪亚洲无码| 极品av一区二区| 欧美视频二区| 欧美第一页在线| 国产真实乱了在线播放| 成人福利在线视频| 白丝美女办公室高潮喷水视频 | 国产成人高清精品免费5388| 欧美日韩午夜视频在线观看| 日本www在线视频| 无码又爽又刺激的高潮视频| 女人18毛片一级毛片在线| 日韩无码视频专区| 伊人成人在线| 日本伊人色综合网| 国产精品白浆在线播放| 青青久视频| 日本免费新一区视频| 欧美一区二区福利视频| 视频在线观看一区二区| 欧美午夜在线视频| 免费人成在线观看成人片 | 亚洲无码A视频在线| 美女国内精品自产拍在线播放| 免费女人18毛片a级毛片视频| 国产乱人乱偷精品视频a人人澡| 亚洲天堂2014| 在线亚洲精品自拍| 国产办公室秘书无码精品| 亚洲av日韩综合一区尤物| 中文字幕有乳无码| 国产在线无码av完整版在线观看| 伊人精品视频免费在线| 日韩一区二区在线电影| 日韩大乳视频中文字幕| 香蕉精品在线| 114级毛片免费观看| 久久窝窝国产精品午夜看片| 免费av一区二区三区在线| 国产av剧情无码精品色午夜| 成人精品亚洲| 亚洲国产精品成人久久综合影院| 免费人成视网站在线不卡| 精品国产一二三区| 欧美综合成人| 国产96在线 | 99热这里只有精品免费| 亚洲一区二区三区香蕉| 91精品人妻一区二区| 久久性妇女精品免费| 国产成人盗摄精品| 久久中文电影| 国产地址二永久伊甸园| 国产乱子伦视频在线播放| 91精品综合| 午夜视频在线观看区二区| 欧美国产视频| 免费大黄网站在线观看| 精品国产Av电影无码久久久| 国产成人无码久久久久毛片| 日本成人在线不卡视频| 久久久久人妻精品一区三寸蜜桃| 91精品视频网站| 中文字幕久久亚洲一区| 亚洲永久色| 天天躁夜夜躁狠狠躁躁88| 国产精品部在线观看| 国产成人精品男人的天堂| 无码精油按摩潮喷在线播放| 高清国产在线| 亚洲精品图区| 欧美第二区|