




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
PAGEPAGEI北京理工大學珠海學院綠化管理系統——基于web服務摘要如今,科學技術已是第一生產力。計算機發展到現在已經是比較成熟的一門技術學科。管理系統在計算機中的應用已非常普遍。不管是單位內部使用還是以產品形式開發,管理系統的需求都非常大。人們對管理的要求越來越多,越來越繁瑣,傳統的管理系統面臨著很大的挑戰。在信息不斷膨脹的今天,能更好地適應需求,想法越新,越有創意,無疑可以在競爭中取得優勢。對于傳統的管理系統比較常見的有,資產管理系統,圖書館管理系統,學生信息管理系統等。這些傳統管理系統如今在市場上已經見怪不怪了,要想能夠吸引人們的眼光,無疑需要想出一些獨樹一幟的新穎的想法,但又不能脫離人們的需求。本課題中設計了綠化管理系統,專門對本校北京理工大學珠海學院的綠化帶及樹木進行管理,實現管理系統具備的基本功能增刪改查,本系統還為推廣本校進行了網絡化設計。綠化管理系統的提出,可謂別具匠心,在傳統的管理系統上另辟蹊徑。本系統管理學校的所有綠化帶的信息,實現對綠化帶信息的增加,刪除,改動,查詢以及數據庫的備份和還原等功能,極大的方便了負責學校綠化管理的老師對樹木進行管理。關鍵詞:管理系統綠化webZhuhai,BeijingInstituteofTechnologyCollegeofgreenmanagementsystem-web-basedservicesABSTRACTToday,scienceandtechnologyareprimaryproductiveforce.Acomputerisnowdevelopedintoarelativelymaturetechnologysubjects.Managementsysteminthecomputerapplicationsareverycommon.Whetherinterioroftheirflatsorinproductformtheuseofthedevelopment,managementsystemrequirementsareverylarge.Peoplemanagementrequirements,andmoreandcumbersome,thetraditionalmanagementsystemisfacinggreatchallenges.Intoday'sever-expandinginformationandcanbettermeettheneeds,themorenewideas,themorecreative,nodoubtthecompetitionadvantage.Forthetraditionalmanagementsystemsaremorecommon,assetmanagementsystem,librarymanagementsystem,studentinformationmanagementsystems.Today,thesetraditionalmanagementsystemsinthemarkethasbeenflattering,tobeabletoattractpeople'seyes,nodoubtneedtocomeupwithsomeuniqueinnovativeideas,butcannotbedivorcedfrompeople'sdemand.Inthispaper,greenmanagementsystemwasdesignedspecificallyfortheUniversityZhuhai,BeijingInstituteofTechnologyGreenmanagementsystemproposed,canbedescribedasuniqueingenuity,inthetraditionalmanagementsystem,openanewpath.Thesystemmanagementofallschools,greenbeltoftheinformation,toinformationonthegreenbelttoadd,delete,change,queryanddatabasebackupandrestorefunctions,greatlyfacilitatethemanagementinchargeoftheschool'steacherofthegreentreesmanagement.Keywords:greenwebmanagementsystem目錄摘要 IIABSTRACT III1緒論 11.1軟件管理系統發展的歷程 11.2本課題的研究背景 21.3本課題的研究意義 21.4本課題主要研究的內容 21.5本章小結 22系統開發環境 32.1硬件開發環境 32.1.1服務器 32.1.2客戶端 62.2軟件開發環境 82.2.1windowsserver2003服務器操作系統 82.2.2windowsxp客戶端操作系統 92.2.3windows下開發軟件visualstudio2008 102.2.4數據庫開發軟件SQLServer2005Express 112.3本章小結 123系統設計與分析 133.1系統用例圖 133.2補充規約 143.3系統總體設計圖 153.4本章小結 154系統開發 164.1web服務的開發 164.1.1系統管理員 164.1.2查詢 194.1.3數據更新 204.1.4數據庫備份 264.2簡單測試應用程序的開發 294.3本章小結 325系統測試 325.1本地iis的配置 325.2配置客戶端pc的軟件運行環境 345.3測試 365.4本章小結 426總結與展望 436.1本課題完成的主要工作 436.2存在問題與進一步需要研究的內容 43參考文獻 44謝辭 451緒論1.1軟件管理系統發展的歷程信息管理系統(MIS)涉及經濟學、管理學、運籌學、統計學、計算機科學等很多學科,是各學科緊密相連綜合交叉的一種系統。作為管理系統,它的理論和方法正在不斷發展與完善。信息管理系統除了具備增、刪、改、查的基本功能外,還需具備預測、計劃、控制和輔助決策特有功能。具體是:(1)數據處理功能。包括數據收集和輸入、數據傳輸、數據存儲、數據加工和輸出。(2)預測功能。運用現代數學方法、統計方法和模擬方法,根據過去的數據預測外來的情況。(3)計劃功能。根據企業提供的約束條件,合理地安排各職能部門的計劃,按照不同的管理層,提供不同的管理層,提供相應的計劃報告。(4)控制功能。根據各職能部門提供的數據,對計劃的執行情況進行檢測、檢測、比較執行與計劃的差異,對差異情況分析其原因。(5)輔助決策功能。采用各種數學模型和所存儲的大量數據,及時推倒出有關問題的最優解或滿意解,輔助各級管理人員進行決策,以期合理利用人財物和信息資源,取得較大的經濟效益。從某種意義上講。信息管理系統是組織理論、會計學、統計學、數學模型及經濟學的混合物,它全面使用計算機技術、網絡通信技術、數據庫技術等,是多學科交叉的邊緣技術,因此是技術系統。從社會技術系統的觀點來看,MIS和組織結構之間是相互影響的,引進MIS將導致新組織結構的產生,而現存的組織結構又對MIS的分析、設計、引進的成功與否產生重要影響,其影響要素包括組織環境、組織戰略、組織目標、組織結構、組織過程和組織文化。所以信息管理系統發展到今天,既是技術系統,同時也是社會系統。1.2本課題的研究背景管理系統在計算機中的應用已非常普遍。不管是單位內部使用還是以產品形式開發,管理系統的需求都非常大。人們對管理的要求越來越多,越來越繁瑣,傳統的管理系統面臨著很大的挑戰。在信息不斷膨脹的今天,能更好地適應需求,想法越新,越有創意,無疑可以在競爭中取得優勢。對于傳統的管理系統比較常見的有,資產管理系統,圖書館管理系統,學生信息管理系統等。這些傳統管理系統如今在市場上已經見怪不怪了,要想能夠吸引人們的眼光,無疑需要想出一些獨樹一幟的新穎的想法,但又不能脫離人們的需求。1.3本課題的研究意義本課題設計了綠化管理系統,專門對本校北京理工大學珠海學院的綠化帶及樹木進行管理,實現管理系統具備的基本功能增刪改查。對于綠化管理在計算機中的應用是很少見的,本綠化管理系統的提出,可謂別具匠心,在傳統的管理系統上另辟蹊徑。本系統管理學校的所有綠化帶的信息,實現對綠化帶信息的增加,刪除,改動,查詢以及數據庫的備份和還原等功能,極大的方便了負責學校綠化管理的老師對樹木進行管理。1.4本課題主要研究的內容本課題的主要內容是在服務器pc和客戶端pc上開發系統相應的軟件及相關的服務。在課題中所做的工作主要為幾個方面:后臺數據庫的開發Web服務開發簡單測試應用程序的開發Asp展示網頁的開發1.5本章小結本章主要敘述了信息管理系統的發展歷程,以及本課題的研究背景和本課題研究的意義,列出了本課題需要做的主要工作。2系統開發環境2.1硬件開發環境本系統主要的硬件開發環境是服務器pc和客戶端pc。服務器pc主要搭建起服務器環境及存放供客戶端pc訪問的web服務和asp網頁,客戶端pc主要存放訪問服務器的應用軟件及需要有IE瀏覽器的支持。由此看出,服務器pc的軟件負擔比較重,故配置上要求需要高一些,服務器pc的開發配置如下:CPU:3.06G內存:1G以上(2G最佳)硬盤:80G以上顯卡:128M顯存以上客戶端pc只需要有.net平臺及IE瀏覽器支持,故軟件負擔不會太重,客戶端配置如下:CPU:1.80G主頻以上內存:256M以上硬盤:80G以上顯卡:128M顯存以上2.1.1服務器服務器指一個管理資源并為用戶提供服務的計算機軟件,通常分為文件服務器、數據庫服務器和應用程序服務器。運行以上軟件的計算機或計算機系統也被稱為服務器。從廣義上講,服務器是指網絡中能對其它機器提供某些服務的計算機系統(如果一個PC對外提供ftp服務,也可以叫服務器)。從狹義上來講,服務器是專指某些高性能計算機,能夠通過網絡,對外提供服務。相對于普通PC來說,服務器在穩定性、安全性、性能等方面都要求更高,因此CPU、芯片組、內存、磁盤系統、網絡等硬件和普通PC有所不同。圖2-1主流服務器服務器作為網絡的節點,存儲、處理網絡上80%的數據、信息,因此也被稱為網絡的靈魂。它是網絡上一種為客戶端計算機提供各種服務的高可用性計算機,它在網絡操作系統的控制下,將與其相連的硬盤、磁帶、打印機、Modem及各種專用通訊設備提供給網絡上的客戶站點共享,也能為網絡用戶提供集中計算、信息發表及數據管理等服務。它的高性能主要體現在高速度的運算能力、長時間的可靠運行、強大的外部數據吞吐能力等方面。圖2-2服務器內部組織結構服務器的構成與微機基本相似,有處理器、硬盤、內存、系統總線等,它們是針對具體的網絡應用特別制定的,因而服務器與微機在處理能力、穩定性、可靠性、安全性、可擴展性、可管理性等方面存在差異很大。尤其是隨著信息技術的進步,網絡的作用越來越明顯,對自己信息系統的數據處理能力、安全性等的要求也越來越高。圖2-3服務器內部硬件結構由于服務器在網絡中提供服務,那么這個服務的質量對承擔多種應用的網絡計算環境是非常重要的,承擔這個服務的計算機硬件必須有能力保障服務質量。這個服務首先要有一定的容量,能響應單位時間內合理數量的服務器請求,同時這個服務對單個服務請求的響應時間要盡量快,還有這個服務要在要求的時間范圍內一直存在。如果一個WEB服務器只能在1分鐘里處理1個主頁請求,1個以外的其他請求必須排隊等待,而這一個請求必須要3分鐘才能處理完,同時這個WEB服務器在1個小時以前可以訪問到,但一個小時以后卻連接不上了,這種WEB服務器在現在的Internet計算環境里是無法想象的。現在的WEB服務器必須能夠同時處理上千個訪問,同時每個訪問的響應時間要短,而且這個WEB服務器不能停機,否則這個WEB服務器就會造成訪問用戶的流失。為達到上面的要求,作為服務器硬件必須具備如下的特點:性能,使服務器能夠在單位時間內處理相當數量的服務器請求并保證每個服務的響應時間;可靠性,使得服務器能夠不停機;可擴展性,使服務器能夠隨著用戶數量的增加不斷提升性能。因此我們說不能把一臺普通的PC作為服務器來使用,因為,PC遠遠達不到上面的要求。這樣我們在服務器的概念上又加上一點就是服務器必須具有承擔服務并保障服務質量的能力。這也是區別低價服務器和PC的差異的主要方面。在信息系統中,服務器主要應用于數據庫和Web服務,而PC主要應用于桌面計算和網絡終端,設計根本出發點的差異決定了服務器應該具備比PC更可靠的持續運行能力、更強大的存儲能力和網絡通信能力、更快捷的故障恢復功能和更廣闊的擴展空間,同時,對數據相當敏感的應用還要求服務器提供數據備份功能。而PC機在設計上則更加重視人機接口的易用性、圖像和3D處理能力及其他多媒體性能。2.1.2客戶端了解Client及Server間的關系。在計算機的世界里,凡是提供服務的一方我們稱為服務器(Server),而接受服務的另一方我們稱作客戶端(Client)。我們最常接觸到例子是局域網絡里的打印服務器所提供的打印服務:提供打印服務的計算機,我們可以說它是打印服務器;而使用打印服務器提供打印服務的另一方,我們則稱作客戶端。但是誰是客戶端誰是服務器也不是絕對的,例如倘若原提供服務之服務器要使用其它機器所提供之服務,則所扮演之角色即轉變為客戶端。而這種關系在因特網上,就變成使用者和網站的關系了。使用者透過調制解調器等設備上網,在瀏覽器中輸入網址,透過HTTP通訊協議向網站提出瀏覽網頁的要求(Request)。網站收到使用者的要求后,將使用者要瀏覽的網頁數據傳輸給使用者,這個動作稱為響應(Response)。網站提供網頁數據的服務,使用者接受網站所提供的數據服務;所以使用者在這里就是客戶端,響應使用者要求的網站即稱為服務器。圖2-4客戶端與服務器的關系不過客戶端及伺服端的關系不見得一定建立在兩臺分開的機器上,同一臺機器中也有這種主從關系的存在。提供服務的伺服端及接受服務的客戶端也有可能都在同一臺機器上,例如我們在提供網頁的服務器上執行瀏覽器瀏覽本機所提供的網頁,這樣在同一臺機器上就同時扮演伺服端及客戶端。圖2-5用戶客戶端通過因特網請求服務2.2軟件開發環境本設計用到的軟件開發環境主要有windowsserver2003服務器操作系統,windowsxp客戶端操作系統,visualstudio2008應用開發軟件及SQLServer2005數據庫開發軟件。其中系統大部分的代碼和程序調試是在visualstudio2008及SQLServer2005完成的,因此visualstudio2008和SQLServer2005的使用將是本設計的重點。下面將對這幾個軟件開發環境依次進行講解。2.2.1windowsserver2003服務器操作系統WindowsServer2003是微軟的服務器操作系統。該產品最初叫作“Windows.NETServer”,后改成“Windows.NETServer2003”,最終被改成“WindowsServer2003”,于2003年3月28日圖2-6windowsserver2003操作系統WindowsServer2003是目前微軟推出的使用最廣泛的服務器操作系統。相對于Windows2000,此版本做了很多改進,特別是在改進的腳本和命令行工具,對微軟來說是一次革新——把一個完整的命令外殼帶進下一Windows版本的一部分。相對于windows2000,此版本主要有以下改進的方面:改進的ActiveDirectory(活動目錄)(如可以從schema中刪除類)。改進的GroupPolicy(組策略)操作和管理。改進的磁盤管理,如可以從ShadowCopy(卷影復制)中備份文件。WindowsServer2003有多種版本,每種都適合不同的商業需求:WindowsServer2003Web版WindowsServer2003標準版WindowsServer2003企業版WindowsServer2003數據中心版本設計中,為了開發和調試方便使用標準版+sp1補丁包進行開發。2.2.2windowsxp客戶端操作系統Windowsxp這個操作系統相信許多人都不會陌生。Windowsxp中文全稱為視窗操作系統體驗版。是微軟公司發布的一款視窗操作系統。它發行于2001年10月25日,原來的名稱是Whistler。微軟最初發行了兩個版本,家庭版(Home)和專業版(Professional)。家庭版的消費對象是家庭用戶,專業版則在家庭版的基礎上添加了新的為面向商業的設計的網絡認證、雙處理器等特性。且家庭版只支持1個處理器,專業版則支持2個。字母XP表示英文單詞的“體驗”(experience)。圖2-7windowsxp操作系統WindowsXP擁有一個叫做Luna(月神)的豪華亮麗的用戶圖形界面。WindowsXP的視窗標志也改為較清晰亮麗的四色視窗標志。WindowsXP帶有用戶圖形的登陸界面;全新的XP亮麗桌面,用戶若懷舊以前桌面可以換成傳統桌面。此外,WindowsXP還引入了一個“選擇任務”的用戶界面,使得工具條可以訪問任務的具體細節。然而,批評家認為這個基于任務的設計指示增加了視覺上的混亂,因為它除了提供比其它操作系統更簡單的工具欄以外并沒有添加新的特性。而額外進程的耗費又是可見的。由于微軟把很多以前是由第三方提供的軟件整合到操作系統中,XP受到了猛烈的批評。這些軟件包括防火墻、媒體播放器(WindowsMediaPlayer),即時通訊軟件(WindowsMessenger),以及它與MicrosoftPassport網絡服務的緊密結合,這都被很多計算機專家認為是安全風險以及對個人隱私的潛在威脅。這些特性的增加被認為是微軟繼續其傳統的壟斷行為的持續。XP雖然存在許多風險,但是這些對于普通用戶而言有時候卻無關緊要,而且安全性越高,許多功能反而受限或者需要特殊的設置才能開啟,因此如果非專業人員使用,XP反而是最簡單,通俗,易懂的操作系統。2.2.3windows下開發軟件visualstudio2008MicrosoftVisualStudio2008是面向WindowsVista、Office2007、Web2.0的下一代開發工具,代號“Orcas”,是對VisualStudio2005一次及時、全面的升級。VS2008引入了250多個新特性,整合了對象、關系型數據、XML的訪問方式,語言更加簡潔。使用VisualStudio2008可以高效開發Windows應用。設計器中可以實時反映變更,XAML中智能感知功能可以提高開發效率。同時VisualStudio2008支持項目模板、調試器和部署程序。VisualStudio2008可以高效開發Web應用,集成了ASP.NETAJAX1.0,包含ASP.NETAJAX項目模板,它還可以高效開發Office應用和Mobile應用。對于一個軟件開發人員,一個好的開發環境可以讓開發工作事半功倍,微軟公布了最新版VisualStudioShell的預覽,我們可以發現新版VS的開發界面分為兩個版本:整合模式和孤立模式,分別對基于語言的開發和基于特別工具的開發作了優化。并將IronPython引入了VisualStudio,該界面將在VisualStudio2008的Beta2版本中出現。圖2-8VisualStudio2008開發工具VisualStudio2008開發工具特性:軟件開發更智能評點:VisualStudio2008很好用,特別是自動提示和重構功能。VisualStudio2008中WCF的擴展,用起來很方便評點:VisualStudio2008對WCF的擴展,用起來很方便。VisualStudio2008中的多定向支持評點:VisualStudio2008為應用程序的開發帶來了新的活力。VisualStudio2008對subversion的支持評點:雖然VS2008中并未集成Ankhsvn,但仍然不妨礙我們的使用。微軟整合了windowslive到VisualStudio2008中評點:VS2008程序員開發Live網絡服務平臺的有利武器。VisualStudio2008中的SQL數據庫發布評點:VS2008為數據庫的發布提供了更方便快捷的解決方案。VisualStudio2008加入拼寫檢查器評點:VisualStudio2008,很好,很強大。2.2.4數據庫開發軟件SQLServer2005ExpressMicrosoftSQLServer2005是用于大規模聯機事務處理(OLTP)、數據倉庫和電子商務應用的數據庫和數據分析平臺。SQLServerExpress是一個免費、易用且便于管理的數據庫。SQLServerExpress與MicrosoftVisualStudio2008集成在一起,可以輕松開發功能豐富、存儲安全、可快速部署的數據驅動應用程序。SQLServerExpress是免費的,可以再分發(受制于協議),還可以起到客戶端數據庫以及基本服務器數據庫的作用。SQLServerExpress是低端ISV、低端服務器用戶、創建Web應用程序的專業開發人員以及創建客戶端應用程序的編程愛好者的理想選擇。對于開發人員,SQLserver2005的有三個重要的特性是必須了解的。這三個重要特性分別是:企業數據管理、開發人員生產力和商務智能。下面將以表格的形式詳細的解析這三個特性。企業數據管理開發人員生產力商務智能SQLServer2005帶來了一個全新的企業級數據整合平臺。此平臺具有出色的ETL和整合能力,使得組織機構能更加容易地管理來自于不同的關系型和非關系型數據源的數據。通過SQLServerIntegrationServices(SSIS),組織機構能以整體的視角去考察它們的商業運營情況,從而能具有競爭優勢。2.3本章小結本章主要對系統開發的軟件和硬件環境作了詳細的講解及使用這樣的軟件和硬件環境的優點作了闡述,為后續的章節介紹作了鋪墊。3系統設計與分析3.1系統用例圖根據抽象與分析,系統用例圖如下:增加/刪除操作增加/刪除操作查詢操作《actor》增加/刪除系統《actor》查詢系統管理老師綠化管理系統登錄3.2補充規約簡介本文檔記錄了綠化管理系統所有未在用例中描述的需求。功能性日志和錯誤處理能夠備份樹木的死亡記錄及所有錯誤信息。安全性任何管理老師都需通過認證才可使用系統功能??捎眯怨芾硐道蠋熤灰褂梦覀兘M另一個成員開發的應用程序,就可以進入登錄界面,登錄成功即可使用系統功能。可靠性可恢復性如果系統在特殊時刻崩潰,為了使系統繼續運作,需要恢復之前的備份數據。2.性能管理老師希望訪問系統時,能快速的進入操作界面。因此服務器pc在啟動時就啟動sql服務器是關鍵??芍С中怨芾砝蠋熆筛鶕唧w情況增加綠化區域,樹的種類等操作開發約束此系統我們采用c#.net開發,因為采用c#.net開發效率高,系統也易于維護。接口硬件接口打印機軟件接口C#.net統一的數據庫接口,采用此接口可連接和操作數據庫。C#.net的控件接口。應用的領域規則ID規則規則1數據庫中每一課樹的id是不能為空而且不能與其他樹木的id重復的,因為這是這課樹木區別于其他樹木的標志。規則2每個綠化帶都有存儲的樹木上限,這個綠化帶所有樹木不能超過此上限法律問題此系統為學校內部管理使用,并沒有作為產品發布,故不存在版權費用問題。3.3系統總體設計圖系統分為兩部分設計和開發,兩部分是密切聯系的,詳細的設計圖如下:圖3-1系統總體設計圖3.4本章小結本章主要介紹了系統設計的用例圖,補充規約及系統總體的詳細設計圖。為后續章節的各模塊詳細設計奠定了基礎。4系統開發4.1web服務的開發Webservices是建立可互操作的分布式應用程序的新平臺。作為一個Windows程序員,你可能已經用COM或DCOM建立過基于組件的分布式應用程序。COM是一個非常好的組件技術,但是我們也很容易舉出COM并不能滿足要求的情況。Webservice平臺是一套標準,它定義了應用程序如何在Web上實現互操作性。你可以用任何你喜歡的語言,在任何你喜歡的平臺上寫Webservice,只要我們可以通過Webservice標準對這些服務進行查詢和訪問。下面我們將對本課題的這個網絡類的接口設計做詳細的介紹。4.1.1系統管理員本課題中,設計了三個供應用程序使用的管理系統管理員和管理員登錄驗證的接口函數。publicboollogin(stringuser,stringpwd,stringsqlcmdtable):此函數用于程序登錄系統驗證身份時調用,user為用戶名,pwd為密碼,sqlcmdtable為用戶要登錄的模塊的用戶表格。此函數的關鍵在于如何實現區分模塊的管理員還有驗證返回結果。代碼實現如下:publicboollogin(stringuser,stringpwd,stringsqlcmdtable){boolsingle1=false,single2=false;using(SqlConnectionmyconnection=newSqlConnection()){myconnection.ConnectionString=this.sqlconnection();myconnection.Open();SqlCommandcmd=newSqlCommand();cmd.Connection=myconnection;cmd.CommandText=@"SELECT[user]FROM"+sqlcmdtable;//根據傳進來的參數查詢相應管理員表格cmd.CommandType=CommandType.Text;SqlDataAdapteradapter=newSqlDataAdapter(cmd);DataTabletmptable=newDataTable();adapter.Fill(tmptable);for(inti=0;i<tmptable.Rows.Count;i++){if(user==tmptable.Rows[i].ItemArray.GetValue(0).ToString().Trim()){single1=true;//如果存在此管理員,置信號為true以便下面根據此信號繼續驗證密碼break;}}if(single1){cmd=newSqlCommand(@"SELECTpwdFROM"+sqlcmdtable,myconnection);adapter=newSqlDataAdapter(cmd);adapter.Fill(tmptable);for(inti=0;i<tmptable.Rows.Count;i++){if(pwd==tmptable.Rows[i].ItemArray.GetValue(0).ToString().Trim()){single2=true;//如果密碼正確,置此信號為true,以便返回結果break;}}}this.sql_release();//釋放所有的連接/*根據上面的查詢結果返回驗證結果*/if(single2)returntrue;elsereturnfalse;}}publicbooladduser(stringuser,stringpwd,stringsqlcmdtable):此函數用于增加系統管理員,參數user為要增加的管理員用戶名,pwd為要增加的管理員密碼,sqlcmdtable用于區分模塊管理員,因為系統有三大模塊,每一模塊的管理員各自存在不同的表格,因此設此參數以區分模塊的管理員。核心代碼如下:SqlCommandcmd=newSqlCommand();cmd.Connection=myconnection;cmd.CommandText=@"INSERTINTO"+sqlcmdtable+@"(user,pwd)VALUES('"+user+"','"+pwd+"')";//數據庫語句,向所要求的管理員表格插入一行數據cmd.CommandType=CommandType.Text;try{cmd.ExecuteNonQuery();}catch(Exception){/*如果用戶已經存在,則更新其信息*/cmd.CommandText=@"UPDATE"+sqlcmdtable+@"SETpwd='"+pwd+@"'WHERE(user='"+user+@"')";cmd.ExecuteNonQuery();this.sql_release();returnfalse;}this.sql_release();returntrue;publicintdeleteuser(stringuser,stringpwd,stringsqlcmdtable):此函數用于刪除系統管理員,參數user為要刪除的管理員,pwd為該管理員密碼,sqlcmdtable為模塊的管理員表格,此參數類似于驗證和增加中的同名參數。核心代碼如下:SqlCommandcmd=newSqlCommand();cmd.Connection=myconnection;cmd.CommandText=@"SELECTpwdFROM"+sqlcmdtable+@"WHERE(user='"+user+@"')";//先取出指定用戶名的密碼cmd.CommandType=CommandType.Text;SqlDataAdaptertmpadapter=newSqlDataAdapter(cmd);DataTabletmpdt=newDataTable();tmpadapter.Fill(tmpdt);try{stringtmpstr=tmpdt.Rows[0].ItemArray.GetValue(0).ToString();if(tmpstr==pwd)//如果密碼與密碼參數相同則執行刪除操作{cmd.CommandText=@"DELETEFROM"+sqlcmdtable+@"WHERE(user='"+user+@"')";cmd.ExecuteNonQuery();this.sql_release();return1;//刪除成功}}catch(Exception){this.sql_release();return2;//無此用戶}}this.sql_release();return0;//密碼不正確4.1.2查詢本模塊設計了一個函數供客戶端應用程序查詢使用。此函數為publicDataSetselectds(stringtablenameandcondition),參數tablenameandcondition為查詢條件,只要應用程序端傳入此參數,就能得到相應的數據集。此函數核心代碼如下:publicDataSetselectds(stringtablenameandcondition){using(SqlConnectionmyconn=newSqlConnection()){myconn.ConnectionString=this.sqlconnection();myconn.Open();SqlCommandcmd=newSqlCommand(@"SELECT*FROM"+tablenameandcondition,myconn);SqlDataAdaptertmpadapter=newSqlDataAdapter(cmd);DataSettmpds=newDataSet();tmpadapter.Fill(tmpds);this.sql_release();returntmpds;}}此函數這樣設計可實現模糊查詢,因為查詢條件是客戶端傳過來的,需要的條件,在客戶端的應用程序首先處理好然后以字符串的形式傳過來,就能得到相應的數據集,只用一個函數實現此功能代碼上可簡潔許多。4.1.3數據更新此模塊的設計是整個系統的重點,涉及到綠化信息、綠化種類、綠化區域的錄入、更新和刪除,此模塊共設計了八個函數,分別是更新主表Table1的信息:updatetable1();更新種類存儲表格Table2的信息:updatetable2_properties_alter()、updatetable2_kind_add()和publicboolupdatetable2_kind_delete();增加或刪除綠化區域:updatetable4_area_add()和updatetable4_area_delete();死亡樹木的備份:updatebackup_tree_deleted_Table()和deletetree_Table1()。下面將對這八個函數作詳細的解析。publicintupdatetable1(stringid,stringguanfu,stringarea,stringprice,stringyear,stringmonth,stringday,stringkind,stringstandard_scale,stringunit_scale,stringvalue,stringremark):此函數功能為更新主表的綠化信息,各個參數依次為主表中各個屬性字段的值,以字符串的形式傳遞,此函數返回值有有個,1表示要錄入的樹的種類并沒有在數據庫中,需要先增加該種類的樹,2表示要錄入的樹的區域不存在,需要先增加新區域或重新選擇區域,3表示數據錄入的格式不對,4表示要錄入的樹存在,并且信息更新成功,5表示樹錄入成功。核心代碼如下:SqlDataAdaptertmpadapter=newSqlDataAdapter(@"SELECTkindFROMTable2",mycon);DataTabletmptable=newDataTable();if(kindx!="NULL"&&kind.Length!=0){tmpadapter.Fill(tmptable);for(inti=0;i<tmptable.Rows.Count;i++){if(kind==tmptable.Rows[i].ItemArray.GetValue(0).ToString().Trim()){x=true;break;}}if(!x){this.sql_release();return1;//數據庫沒有存此種類}}x=false;if(areax!="NULL"&&area.Length!=0){tmpadapter=newSqlDataAdapter(@"SELECTareaFROMTable4",mycon);tmptable=newDataTable();tmpadapter.Fill(tmptable);for(inti=0;i<tmptable.Rows.Count;i++){if(area==tmptable.Rows[i].ItemArray.GetValue(0).ToString().Trim()){x=true;break;}}if(!x){this.sql_release();return2;//數據庫中不存在此區域}}x=false;SqlCommandcmd;tmpadapter=newSqlDataAdapter(@"SELECT[standardofscale]FROMjudge_standard_Table",mycon);tmptable=newDataTable();tmpadapter.Fill(tmptable);for(inti=0;i<tmptable.Rows.Count;i++){if(standard_scale==tmptable.Rows[i].ItemArray.GetValue(0).ToString().Trim()&&standard_scalex!="NULL"){x=true;break;}}if(!x){cmd=newSqlCommand(@"INSERTINTOjudge_standard_Table([standardofscale])VALUES('"+standard_scale+@"')",mycon);cmd.ExecuteNonQuery();}cmd=newSqlCommand(@"INSERTINTOTable1(id,area,[yearofplanting],[monthofplanting],[dayofplanting],[standardofscale],[unitofscale],value,[guanfu],[priceofbuy],kind,remark)VALUES("+idx+@","+areax+@","+yearx+@","+monthx+@","+dayx+@","+standard_scalex+@","+unit_scalex+@","+valuex+@","+guanfux+@","+pricex+@","+kindx+@","+remarkx+@")",mycon);if(id.Length!=0){try{cmd.ExecuteNonQuery();}catch(Exception){try{cmd=newSqlCommand(@"UPDATETable1SETarea="+areax+@","+@"[yearofplanting]="+yearx+@","+@"[monthofplanting]="+monthx+@","+@"[dayofplanting]="+dayx+@","+@"[standardofscale]="+standard_scalex+@","+@"[unitofscale]="+unit_scalex+@","+@"value="+valuex+","+@"[guanfu]="+guanfux+","+@"[priceofbuy]="+pricex+","+@"kind="+kindx+","+@"remark="+remarkx+@"WHERE(id="+idx+@")",mycon);cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();return3;//數據格式不對}this.sql_release();return4;//更新成功}}else{this.sql_release();return0;//id號為空}this.sql_release();return5;//插入成功publicbooldeletetree_Table1(stringid):刪除主表中的樹,參數id為要刪除的樹的id,核心算法如下:SqlCommandcmd=newSqlCommand(@"DELETEFROMTable1WHEREid='"+id+@"'",mycon);try{cmd.ExecuteNonQuery();this.sql_release();returntrue;}catch(Exception){this.sql_release();returnfalse;}publicboolupdatetable2_properties_alter(stringkind,stringproperty,stringvalue):此函數功能在于更新種類樹表格的屬性值,參數kind為要更新的樹的種類,property為要更新的屬性,value為值。核心代碼如下:SqlCommandcmd=newSqlCommand(@"UPDATETable2SET"+property+@"='"+value+@"'WHERE(kind='"+kind+@"')",mycon);//數據庫語句,將信息更新至屬性表格try{cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();returnfalse;}this.sql_release();returntrue;publicboolupdatetable2_kind_add(stringkind):此函數用于增加種類樹,參數kind為要增加的種類樹,此函數算法與更新屬性的函數算法大同小異在此不再多做解釋,核心代碼如下:SqlCommandcmd=newSqlCommand(@"INSERTINTOTable2(kind)VALUES('"+kind+@"')",mycon);try{cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();returnfalse;}this.sql_release();returntrue;publicboolupdatetable2_kind_delete(stringkind):此函數用于刪除種類樹,kind為要刪除的樹的種類,此函數算法設計方面,關鍵在于,要刪除某一種類樹,首先需要先刪除主表中這一種類的所有樹,否則數據庫將出現異常,因此算法設計上需要做兩步刪除,核心算法如下:SqlCommandcmd=newSqlCommand(@"DELETEFROMTable1WHEREkind='"+kind+@"'",mycon);//刪除主表中該種類的所有樹try{cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();returnfalse;}cmd=newSqlCommand(@"DELETEFROMTable2WHEREkind='"+kind+@"'",mycon);//刪除該種類的樹try{cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();returnfalse;}this.sql_release();returntrue;publicboolupdatetable4_area_add(stringarea,stringareaid):此函數為增加綠化區域,參數area為要增加的區域的區域名,areaid為區域的id號,當學校要規劃多一塊綠化區域時,這時管理員要向這個區域增加新的綠化信息時,需要先告訴系統有新的綠化區域,此時在應用程序端設計了一個模塊在此模塊里調用此函數,即可向系統增加新的綠化區域。核心代碼如下:SqlCommandcmd=newSqlCommand(@"INSERTINTOTable4(area,areaid)VALUES('"+area+@"','"+areaid+@"')",mycon);try{cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();returnfalse;}this.sql_release();returntrue;publicboolupdatetable4_area_delete(stringarea):如果學校的原有的某一塊綠化區域現在要做別的用途,那么此時需要在系統中清除該綠化區域的所有信息及該區域,這時,應用程序端只要調用此函數便可刪除該綠化區域及該區域上的所有綠化信息。該函數算法關鍵在于在刪除區域之前需要先刪除主表中所有有關該區域的綠化信息,否則數據庫將出現異常,核心算法如下:SqlCommandcmd;cmd=newSqlCommand(@"DELETEFROMTable1WHEREarea='"+area+@"'",mycon);//刪除主表中所有有關該區域的綠化信息try{cmd.ExecuteNonQuery();}catch(Exception){}cmd=newSqlCommand(@"DELETEFROMTable4WHEREarea='"+area+@"'",mycon);//刪除該綠化區域try{cmd.ExecuteNonQuery();}catch(Exception){this.sql_release();returnfalse;}this.sql_release();returntrue;publicboolupdatebackup_tree_deleted_Table(stringid,stringarea,stringyear,stringmonth,stringday,stringstandard_scale,stringunit_scale,stringvalue,stringguanfu,stringprice,stringkind,stringremark):當主表中有綠化信息被刪除時,需要提示是否備份該綠化信息,此函數就是用于備份被刪除的綠化信息的,各參數分別代表備份表格中各個屬性字段的值,備份表格中的主鍵值由系統自動生成。此函數主要算法在于要先判斷該表格中數據的函數,然后自動生成主鍵值,然后再將各字段插入數據表格中,核心算法如下:SqlCommandcmd=newSqlCommand(@"SELECT*FROMbackup_tree_deleted_Table",mycon);//查詢表格中數據SqlDataAdapteradapter=newSqlDataAdapter(cmd);DataTablemytable=newDataTable();adapter.Fill(mytable);inttmp=mytable.Rows.Count+1;//根據表格中數據的行數加1作為主鍵值cmd=newSqlCommand(@"INSERTINTObackup_tree_deleted_Table(number,id,area,[yearofplanting],[monthofplanting],[dayofplanting],[dateofdeath],[standardofscale],[unitofscale],value,[guanfu],[priceofbuy],kind,remark)VALUES('"+tmp.ToString().Trim()+@"','"+id+@"',"+area+@","+year+@","+month+@","+day+@",'"+System.DateTime.Now.ToString().Trim()+@"',"+standard_scale+@","+unit_scale+@","+value+@","+guanfu+@","+price+@","+kind+@","+remark+@")",mycon);//插入移除的綠化信息的各個屬性值
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030國內減肥食品行業市場深度研究及發展前景投資可行性分析報告
- 乳核護理查房
- 2010-2024歷年浙江省北侖中學高二下學期期中考試歷史卷
- 2025河南信陽市人力資源和社會保障局發布就業見習崗位3566人筆試參考題庫附帶答案詳解版
- 備戰高一高二高三高考歷史搶分秘籍-秘籍06搶分專項中外對比類主觀題精練30題(解析板)
- 備戰高一高二高三高考歷史搶分秘籍-歷史(江蘇卷)(考試版)
- 備戰高一高二高三高考歷史臨考題號押題-押江蘇卷第14題資本主義制度的建立和工業革命(解析版)
- 高血脂與腦卒中的健康教育
- 2010-2024歷年―廣東省惠陽高級中學高一上學期期末考試歷史卷
- 網絡安全團日的活動總結(7篇)
- 風機吊裝培訓
- 德谷門冬雙胰島素注射液-藥品臨床應用解讀
- 野外駐訓安全注意事項
- 墊片基礎知識培訓課件
- 2024連續性腎替代治療下抗菌藥物劑量調整專家共識解析
- 三字經全文帶拼音解釋
- 設備更換申請書
- 2025年2月考勤表(含2025年日歷表)
- 公共設施設備日常巡查記錄表
- JGJT46-2024《施工現場臨時用電安全技術標準》條文解讀
- 稅務局個人所得稅業務培訓
評論
0/150
提交評論