• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于LINQ語(yǔ)言的學(xué)生信息管理系統(tǒng)三層體系結(jié)構(gòu)設(shè)計(jì)

      2012-11-13 07:24:44段班祥
      科技視界 2012年32期
      關(guān)鍵詞:表示層信息管理系統(tǒng)代碼

      段班祥

      (廣東科學(xué)技術(shù)職業(yè)學(xué)院計(jì)算機(jī)工程技術(shù)學(xué)院 廣東 珠海 519090)

      0 引言

      長(zhǎng)期以來,開發(fā)社區(qū)形成以下格局:面向?qū)ο笈c數(shù)據(jù)訪問兩個(gè)領(lǐng)域長(zhǎng)期分裂,各自為政,編程語(yǔ)言中的數(shù)據(jù)類型與數(shù)據(jù)庫(kù)中的數(shù)據(jù)類型形成兩套體系。LINQ(Language Integrated Query)即語(yǔ)言集成查詢,是一組語(yǔ)言特性和API,使得你可以使用統(tǒng)一的方式編寫各種查詢。查詢的對(duì)象包括XML、對(duì)象集合、SQL Server數(shù)據(jù)庫(kù)等等。LINQ主要包含以下三部分:LINQ to Objects、LINQ to XML、LINQ to ADO.NET。而 LINQ to ADO.NET 主要包含:LINQ to SQL、LINQ to DataSet、LINQ to Entities。

      三層結(jié)構(gòu)主要分為:表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層。表示層主要功能是為用戶提供一種交互式操作界面;業(yè)務(wù)邏輯層是表示層與數(shù)據(jù)訪問層之間的橋梁,負(fù)責(zé)關(guān)鍵業(yè)務(wù)的處理和數(shù)據(jù)傳遞;數(shù)據(jù)訪問層實(shí)現(xiàn)對(duì)數(shù)據(jù)的保存和讀取操作。其主要優(yōu)點(diǎn)是當(dāng)數(shù)據(jù)庫(kù)或用戶界面發(fā)生改變時(shí)不需要重新開發(fā),只做簡(jiǎn)單調(diào)整即可。

      1 系統(tǒng)概述需求

      下面我們具體使用LINQ和三層結(jié)構(gòu)實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),本系統(tǒng)開發(fā)工具使用Visual Studio 2010,開發(fā)語(yǔ)言使用C#,開發(fā)數(shù)據(jù)庫(kù)使用SQL Server 2008,系統(tǒng)開發(fā)的總體任務(wù)是實(shí)現(xiàn)信息關(guān)系的系統(tǒng)化、規(guī)范化和自動(dòng)化。系統(tǒng)的結(jié)構(gòu)關(guān)系如圖1所示:

      系統(tǒng)的結(jié)構(gòu)關(guān)系圖是系統(tǒng)的總體功能分析,是在系統(tǒng)開發(fā)的總體任務(wù)的基礎(chǔ)上完成的。本項(xiàng)目中的學(xué)生信息系統(tǒng)需要完成的功能主要有:有關(guān)學(xué)籍等信息的輸入,包括學(xué)生基本信息、所在班級(jí)、所學(xué)課程和成績(jī)等;學(xué)生信息的查詢,包括學(xué)生基本信息、所在班級(jí)、已學(xué)課程、所有成績(jī)和獎(jiǎng)罰信息等;學(xué)生信息(包括獎(jiǎng)罰信息)修改;班級(jí)管理信息的輸入,包括班級(jí)設(shè)置、年級(jí)信息和班級(jí)輔導(dǎo)員等;班級(jí)管理信息的查詢;班級(jí)管理信息的修改;學(xué)?;菊n程信息的輸入;基本課程信息的修改;學(xué)生課程的設(shè)置和修改;學(xué)生成績(jī)信息的輸入;學(xué)生成績(jī)信息的修改;學(xué)生成績(jī)信息的查詢;學(xué)生成績(jī)的報(bào)表打?。挥脩舻卿浶畔⒌奶砑?、修改和刪除等;用戶登錄的密碼修改;數(shù)據(jù)庫(kù)文件的備份。

      圖1 系統(tǒng)結(jié)構(gòu)關(guān)系圖

      2 LINQ和三層結(jié)構(gòu)在學(xué)生信息管理系統(tǒng)中的應(yīng)用

      下面我們以“查詢所有學(xué)生的成績(jī)”模塊為例,說明如何具體使用LINQ和三層結(jié)構(gòu)進(jìn)行設(shè)計(jì)。LINQ提供了LINQ to DATASETS、LINQ to ENTITIES、LINQ to SQL等組件訪問數(shù)據(jù)源,且允許做所有與數(shù)據(jù)庫(kù)相關(guān)的操作。在學(xué)生信息管理系統(tǒng)中,主要使用LINQ to SQL組件訪問數(shù)據(jù)庫(kù),但是其他各組件訪問數(shù)據(jù)源方法與其類似,可將其作為參考。

      2.1 創(chuàng)建數(shù)據(jù)源MySchool.dbml

      在數(shù)據(jù)訪問層把LINQ to SQL類增加到項(xiàng)目中,自動(dòng)創(chuàng)建一個(gè)空白的設(shè)計(jì)器,與此同時(shí),創(chuàng)建相關(guān)的dbml.layout文件和 designer.cs文件,并附有服務(wù)器資源管理器的鏈接。打開服務(wù)器資源管理器,建立與MySchool數(shù)據(jù)庫(kù)的鏈接,將所需要的表直接拖放到MySchool.dbml文件的視圖面板中,該文件的類與MySchool數(shù)據(jù)庫(kù)表相對(duì)應(yīng),最后保存dbml文件,此時(shí),dbml文件里已經(jīng)自動(dòng)生成了包含相關(guān)的屬性、方法的DataContext類和實(shí)體類MySchool.dbml文件。

      2.2 查詢所有學(xué)生的成績(jī)功能的三層結(jié)構(gòu)設(shè)計(jì)

      2.2.1 數(shù)據(jù)訪問層ResultService設(shè)計(jì)

      查詢學(xué)生成績(jī)涉及到學(xué)生信息表Student、成績(jī)表Result、科目表Subject等三個(gè)表,我們使用LINQ查詢語(yǔ)句中的join子句進(jìn)行聯(lián)接,同時(shí)利用左外聯(lián)接上一聯(lián)接的查詢結(jié)果上再進(jìn)行一次查詢,具體語(yǔ)法如下:

      2.2.2 業(yè)務(wù)邏輯層ResultManager和表示層的設(shè)計(jì)查詢學(xué)生成績(jī)功能業(yè)務(wù)邏輯相對(duì)比較簡(jiǎn)單,具體代碼如下:

      表示層窗體FrmSearchStu.cs中添加一個(gè)命令按鈕btnSearch、一個(gè)DataGridView控件dgvResult,編寫命令按鈕 “查詢所有學(xué)生的成績(jī)”單擊事件,實(shí)現(xiàn)查詢所有學(xué)生的成績(jī)。

      學(xué)生信息管理系統(tǒng)其他功能模塊訪問數(shù)據(jù)庫(kù)所使用的全部實(shí)體類代碼使用Visual Studio 2010集成開發(fā)工具的LINQto SQL設(shè)計(jì)器自動(dòng)生成,僅此一項(xiàng)就可以節(jié)省許多復(fù)雜代碼的編寫工作;LINQ把對(duì)數(shù)據(jù)庫(kù)的操作轉(zhuǎn)化為對(duì)實(shí)體類的操作,使編程思路和程序邏輯更加明確;同時(shí),代碼中LINQ to OBJECT的使用也節(jié)約了大量的代碼編寫工作。由于數(shù)據(jù)訪問層代碼全部采用LINQ來實(shí)現(xiàn),所以在編寫這些代碼時(shí)可以獲得編譯時(shí)的類型檢查和IntelliSense支持,提高了編程效率,大大節(jié)省了開發(fā)時(shí)間和成本。

      另外,在軟件開發(fā)過程中,我們使用了三層結(jié)構(gòu),當(dāng)數(shù)據(jù)庫(kù)或用戶界面發(fā)生改變時(shí)不需要重新開發(fā),只做簡(jiǎn)單調(diào)整即可,從而大大提高應(yīng)對(duì)客戶變化的能力以及自身的生產(chǎn)力。

      3 結(jié)束語(yǔ)

      本文通過學(xué)生信息管理系統(tǒng),分析了LINQ及LINQ TO SQL的概念和基本架構(gòu),對(duì)其核心技術(shù)和新特性進(jìn)行了詳細(xì)的描述。結(jié)合三層結(jié)構(gòu),詳細(xì)介紹了LINQ數(shù)據(jù)庫(kù)訪問的基本方法,如查詢、修改、插入、刪除等操作。LINQ to SQL還全面支持事務(wù)、視圖、存儲(chǔ)過程,并且提供簡(jiǎn)單的方式來集成數(shù)據(jù)驗(yàn)證和業(yè)務(wù)邏輯規(guī)則。這些強(qiáng)大的功能和特性還有待在實(shí)際開發(fā)過程中繼續(xù)研究和應(yīng)用。

      [1]微軟公司.ADO.NET 3.5數(shù)據(jù)訪問程序開發(fā)[M].北京:人民郵電出版社,2010.

      [2]宋智軍,邱仲潘.Visual C#2010 從入門到精通[M].北京:電子工業(yè)出版社,2011.

      [3]牟永敏,丁媛,朱緒利,李良杰.基于LINQ技術(shù)的在線考試系統(tǒng)[J].北京信息科技大學(xué)學(xué)報(bào),2011,26(2):19-24.

      [4]涂曙光.LINQ 和LINQ 的未來[J].Technical News,2009,2:17.

      猜你喜歡
      表示層信息管理系統(tǒng)代碼
      三維可視化信息管理系統(tǒng)在選煤生產(chǎn)中的應(yīng)用
      信息管理系統(tǒng)在工程項(xiàng)目管理的應(yīng)用
      基于三維TGIS的高速公路綜合信息管理系統(tǒng)
      基于Spring的企業(yè)級(jí)Web項(xiàng)目架構(gòu)設(shè)計(jì)研究
      軟件(2019年6期)2019-10-08 06:27:21
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      創(chuàng)世代碼
      ASP.NET三層構(gòu)架解析
      基于SSH框架科研管理系統(tǒng)的設(shè)計(jì)
      武隆县| 当阳市| 太和县| 广元市| 工布江达县| 广德县| 清涧县| 志丹县| 鄂伦春自治旗| 铜山县| 射洪县| 浦城县| 罗田县| 承德市| 乌兰浩特市| 神木县| 绥中县| 会宁县| 崇明县| 保山市| 南和县| 大邑县| 济南市| 景宁| 昌平区| 道真| 新绛县| 东至县| 南汇区| 小金县| 绵竹市| 太白县| 尉犁县| 虹口区| 铜川市| 安多县| 虎林市| 三亚市| 务川| 高雄县| 库尔勒市|