ASP-NET-人事工資管理系統(tǒng)設計與實現(xiàn)_第1頁
ASP-NET-人事工資管理系統(tǒng)設計與實現(xiàn)_第2頁
ASP-NET-人事工資管理系統(tǒng)設計與實現(xiàn)_第3頁
ASP-NET-人事工資管理系統(tǒng)設計與實現(xiàn)_第4頁
ASP-NET-人事工資管理系統(tǒng)設計與實現(xiàn)_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

PAGE畢業(yè)論文(設計)基于VC#.Net的人事工資管理系統(tǒng)設計與實現(xiàn)學生姓名:指導教師:合作指導教師: 專業(yè)名稱:計算機科學與技術(shù)所在學院:信息工程學院2010年6月目錄目錄摘要 IABSTRACT II第一章緒論 11.1選題背景 11.2基于VC#.Net的人事工資管理系的設計與實現(xiàn)發(fā)展 1第二章相關(guān)工具的基本理論 22.1關(guān)于C#的說明 22.2關(guān)于管理信息系統(tǒng) 22.3數(shù)據(jù)庫系統(tǒng)概述 2第三章系統(tǒng)需求分析與總體設計 43.1需求分析 43.2總體設計 53.2.1項目規(guī)劃 53.2.2系統(tǒng)功能結(jié)構(gòu) 53.3系統(tǒng)設計 63.3.1設計目標 63.3.2開發(fā)及運行環(huán)境 63.3.3數(shù)據(jù)庫設計 63.3.4技術(shù)準備 11第四章系統(tǒng)實現(xiàn)與調(diào)試 134.1主要功能模塊設計 134.1.1系統(tǒng)登錄設計 134.1.2系統(tǒng)主窗體 154.1.3檔案管理窗體 174.1.4獎懲管理窗體 244.1.5調(diào)動管理窗體 284.1.6考評管理窗體 324.1.7考勤津貼管理窗體 354.1.8員工工資統(tǒng)計窗體 374.2系統(tǒng)調(diào)試 39第五章技術(shù)和經(jīng)驗總結(jié) 405.1技術(shù)總結(jié) 405.1.1動態(tài)綁定水晶報表 405.1.2圖片存入數(shù)據(jù)庫 415.2經(jīng)驗總結(jié) 41致謝 44參考文獻 45摘要PAGE46摘要由于計算機技術(shù)的飛速發(fā)展,數(shù)據(jù)庫存儲作為數(shù)據(jù)管理的一種方式,在各行各業(yè)中得到越來越廣泛的應用。因此,本文圍繞一個”人事工資管理系統(tǒng)”程序的設計和應用系統(tǒng)的開發(fā)課題為背景,詳細介紹了以C#和SQLSERVER編寫管理信息系統(tǒng)的過程。該程序通過C#編程語言來實現(xiàn)前臺與后臺SQLSERVER數(shù)據(jù)庫的連接,并具有典型的數(shù)據(jù)庫應用系統(tǒng)的特征,完成了系統(tǒng)與現(xiàn)實生活的緊密結(jié)合。

管理系統(tǒng)的開發(fā)不僅是一個應用程序編寫的過程,更重要的是在系統(tǒng)分析和設計階段所做的工作。該程序在設計過程中嚴格遵循軟件工程學的方法,用劃分階段的生命周期計劃嚴格管理,并主要講述了程序的總體設計、詳細設計階段,對程序進行需求迭代、不斷修正和改進,利用SQLSERVER的強大數(shù)據(jù)庫功能,直到形成一個完善的可行性系統(tǒng),優(yōu)美、秀麗的界面,方便實用的查詢與維護共同構(gòu)成了“人事工資管理系統(tǒng)”。

關(guān)鍵詞:C#,SQLSERVER2000,軟件工程,管理信息系統(tǒng)

ABSTRACTABSTRACTBecauseoftherapiddevelopmentofcomputertechnology,databasetostoreasawayofdatamanagement,inallofourlifearewidelyuse.Therefore,thispaperisabout"personnelwagemanagementsystem"designandproceduresforapplicationsdevelopmenttopicsbackground,detailsandsqlservertoaddlanguagewithC#totheprocessofpreparingmanagementinformationsystems.TheprocedureadoptedtoachievethetargetdataaddC#backgroundwithSQLServerdatabasesanddatabaseapplicationswithtypicalcharacteristics,andcompletedthestructureandsystemcombiningreallife.

Managementsystemapplicationsdevelopmentisnotonlyanapplicationprogrammingprocess,butmoreimportantlyintheanalysisanddesignwork.Theprocedurestrictlyfollowedinthedesignprocesssoftwareengineeringmethods,anduseaphasedplantomanagethelifecycleandonthemainproceduresdesigned,detaileddesignstage,thedemandforcomputationprocedures,andconstantlyrevisedandimproved,theuseofSQLServerpowerfuldatabasefunctions,Untilthefeasibilityofformingaperfectsystem.Beautifulandattractiveinterfaceforpracticalinformationandthemaintenanceofthecommonfunctionsconstitutea"Personnelwagemanagementsystem."

Keyword:C#,SQLSERVER2000,SoftwareEngineering,ManagementInformationSystem第一章緒論第一章緒論1.1選題背景隨著計算機的日益普及和網(wǎng)絡的發(fā)展,數(shù)據(jù)庫的應用范圍越來越廣,數(shù)據(jù)庫應用的功能也越來越強,因此編寫管理信息系統(tǒng)應用程序也顯得尤為重要,在強調(diào)管理,強調(diào)信息的現(xiàn)代社會中它變得越來越普及。

人事工資管理是任何企事業(yè)單位都需要進行的一項工作。因此,開發(fā)制作人事工資管理系統(tǒng)具有較大的社會現(xiàn)實意義,同時人事工資管理系統(tǒng)是一切應用系統(tǒng)的典范,它具有一切應用系統(tǒng)的特征,系統(tǒng)結(jié)構(gòu)與現(xiàn)實生活緊密結(jié)合,具體直觀,具有典范的數(shù)據(jù)庫系統(tǒng)的特性。人事工資管理系統(tǒng)主要用于企業(yè)內(nèi)部員工的檔案、工資、考勤、評價的管理,便于公司領(lǐng)導掌握人員的動向,及時調(diào)整人才的分配,同時也減少了手工操作帶來的一些繁瑣與不便,使員工情況的記錄和統(tǒng)計變得十分簡單,這些優(yōu)點可以極大的提高企業(yè)對人事管理的效率。因此,人事工資管理系統(tǒng)是企事業(yè)信息化、智能化、科學化和正規(guī)化不可缺少的管理軟件。1.2基于VC#.Net的人事工資管理系的設計與實現(xiàn)發(fā)展本系統(tǒng)開發(fā)的目的一方面從提高人事工資管理工作的效率出發(fā),擺脫過去由人用紙和筆進行的費時費力的繁重工作,即利用成熟的計算機系統(tǒng)來實現(xiàn)管理工作的自動化。本系統(tǒng)根據(jù)企業(yè)管理的一些實際情況而編制的一套自動化的人事管理系統(tǒng)。

用戶通過輸入員工的基本信息、考勤信息等,由系統(tǒng)自動生成相應的統(tǒng)計數(shù)據(jù)及工資統(tǒng)計報表以供用戶查詢、打印,另外用戶還可以對這些基本信息進行定期的更新與刪除工作,人事管理系統(tǒng)力求以方便快捷的途徑去管理日常工作中繁瑣的數(shù)據(jù)。

人事管理系統(tǒng)的數(shù)據(jù)要求具有一定的保密性禁止非法用戶使用。在用戶使用過程中對用戶的權(quán)限具有一定的限制,防止個別用戶對員工信息做出修改、刪除等操作。

本文首先介紹了人事管理系統(tǒng)所涉及工具和一些相關(guān)的理論知識,并著重介紹了企業(yè)管理系統(tǒng)和數(shù)據(jù)庫,其中包括對C#和SQLSERVER2000的使用和特點進行了介紹,然后對所做系統(tǒng)進行總體設計,數(shù)據(jù)庫的設計和詳細設計,從這三個方面詳細闡明系統(tǒng)的設計過程,最后,在編程實現(xiàn)的過程中,介紹本人使用C#對數(shù)據(jù)庫基礎(chǔ)應用程序進行設計、開發(fā)與實現(xiàn)的思路、算法、并得出結(jié)論。第二章相關(guān)工具的基本理論第二章相關(guān)工具的基本理論2.1關(guān)于C#的說明C#是微軟公司發(fā)布的一種面向?qū)ο蟮?、運行于.NETFramework之上的高級程序設計語言。并定于在微軟職業(yè)開發(fā)者論壇(PDC)上登臺亮相。C#是微軟公司研究員AndersHejlsberg的最新成果。C#看起來與Java有著驚人的相似;它包括了諸如單一繼承、接口、與Java幾乎同樣的語法和編譯成中間代碼再運行的過程。但是C#與Java有著明顯的不同,它借鑒了Delphi的一個特點,與COM(組件對象模型)是直接集成的,而且它是微軟公司.NETwindows網(wǎng)絡框架的主角。C#是一種安全的、穩(wěn)定的、簡單的、優(yōu)雅的,由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強大功能的同時去掉了一些它們的復雜特性(例如沒有宏和模版,不允許多重繼承)。C#綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優(yōu)雅的語法風格、創(chuàng)新的語言特性和便捷的面向組件編程的支持成為.NET開發(fā)的首選語言。C#并且成為ECMA與ISO標準規(guī)范。C#看似基于C++寫成,但又融入其它語言如Pascal、Java、VB等。2.2關(guān)于管理信息系統(tǒng)所謂MIS(管理信息系統(tǒng)--ManagementInformationSystem)系統(tǒng),是一個由人、計算機及其他外圍設備等組成的能進行信息的收集、傳遞、存貯、加工、維護和使用的系統(tǒng)。它是一門新興的科學,其主要任務是最大限度的利用現(xiàn)代計算機及網(wǎng)絡通訊技術(shù)加強企業(yè)的信息管理,通過對企業(yè)擁有的人力、物力、財力、設備、技術(shù)等資源的調(diào)查了解,建立正確的數(shù)據(jù),加工處理并編制成各種信息資料及時提供給管理人員,以便進行正確的決策,不斷提高企業(yè)的管理水平和經(jīng)濟效益。目前,企業(yè)的計算機網(wǎng)絡已成為企業(yè)進行技術(shù)改造及提高企業(yè)管理水平的重要手段。隨著我國與世界信息高速公路的接軌,企業(yè)通過計算機網(wǎng)絡獲得信息必將為企業(yè)帶來巨大的經(jīng)濟效益和社會效益,企業(yè)的辦公及管理都將朝著高效、快速、無紙化的方向發(fā)展。MIS系統(tǒng)通常用于系統(tǒng)決策,例如,可以利用MIS系統(tǒng)找出目前迫切需要解決的問題,并將信息及時反饋給上層管理人員,使他們了解當前工作發(fā)展的進展或不足。換句話說,MIS系統(tǒng)的最終目的是使管理人員及時了解公司現(xiàn)狀,把握將來的發(fā)展路徑。2.3數(shù)據(jù)庫系統(tǒng)概述數(shù)據(jù)庫系統(tǒng)是指在計算機系統(tǒng)中引入數(shù)據(jù)庫后的系統(tǒng),一般由數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應用系統(tǒng)、數(shù)據(jù)庫管理員和用戶構(gòu)成。應當指出的是,數(shù)據(jù)庫的建立、使用和維護等工作只靠一個DBMS遠遠不夠,還要有專門的人員來完成,這些人被稱為數(shù)據(jù)庫管理員。

在一般不引起混淆的情況下常常把數(shù)據(jù)庫系統(tǒng)簡稱為數(shù)據(jù)庫。數(shù)據(jù)庫技術(shù)是應數(shù)據(jù)管理任務的需要而產(chǎn)生的。隨著計算機技術(shù)的發(fā)展,其應用遠遠地超出了這個范圍。在應用需求的推動下,在計算機硬件,軟件發(fā)展的基礎(chǔ)上,數(shù)據(jù)管理技術(shù)經(jīng)歷了人工管理、文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)三個階段。

與人工管理和文件系統(tǒng)相比,數(shù)據(jù)庫系統(tǒng)的特點主要有以下幾個主面:數(shù)據(jù)的結(jié)構(gòu)化;

數(shù)據(jù)的共享性高,冗余度低,易擴充;數(shù)據(jù)獨立性高;數(shù)據(jù)由DBMS統(tǒng)一管理和控制。

目前,數(shù)據(jù)庫己經(jīng)成為現(xiàn)代信息系統(tǒng)的不可分離的重要組成部分。具有數(shù)百萬甚至數(shù)十億字節(jié)信息的數(shù)據(jù)庫己經(jīng)普遍存在于科學技術(shù)、工業(yè)、農(nóng)業(yè)、商業(yè)、服務業(yè)和政府部門的信息系統(tǒng)。20世紀80年代后不公在大型機上,在多數(shù)微機上也配置了DBMS,使數(shù)據(jù)庫技術(shù)得到了更加廣泛的應用和普及,是計算機領(lǐng)域中發(fā)展最快的技術(shù)之一。SQLSERVER2000不僅吸收了許多新的功能以增加系統(tǒng)的運行性能,而且還使數(shù)據(jù)庫的管理工作更加輕松。在過去,數(shù)據(jù)庫都是安裝在服務器或是工作站上的,所用的操作系統(tǒng)都是UNIX或?qū)S孟到y(tǒng),價格比較高,SQLSERVER2000可以安裝在個人計算機上,價格要低的多。第三章系統(tǒng)需求分析與總體設計第三章系統(tǒng)需求分析與總體設計3.1需求分析需求分析是軟件定義的最后一個階段,它的基本任務是回答“系統(tǒng)必須做什么“這個問題。需求分析的任務不是確定系統(tǒng)怎樣完成他的工作,而僅僅是確定系統(tǒng)完成哪些工作,也就是對目標系統(tǒng)提出完整、準確、清晰、具體的要求。

可行性研究階段產(chǎn)生的文檔,是需求分析的出發(fā)點。系統(tǒng)必須完成的許多基本功能,系統(tǒng)分析員將仔細研究這些功能并進一步將它們具體化。需求分析的結(jié)果是系統(tǒng)開發(fā)的基礎(chǔ),關(guān)系到工程的成敗和軟件產(chǎn)品的質(zhì)量。因此,必須用行之有效的方法對軟件需求進行嚴格的審查驗證[11]。通過實際調(diào)查,要求本系統(tǒng)具有以下功能:良好的人機界面。方便的添加和修改數(shù)據(jù)功能。方便的數(shù)據(jù)查詢。方便的數(shù)據(jù)打印功能。數(shù)據(jù)計算自動完成,盡量減少人工干預。根據(jù)上述分析,可以通過用例圖來建立功能模型如下:圖3.1人事工資管理系統(tǒng)用例圖3.2總體設計3.2.1項目規(guī)劃人事工資管理系統(tǒng)主要由人事管理,工資管理,系統(tǒng)管理,用戶管理和退出模塊組成,具體規(guī)劃如下:人事管理模塊。該模塊主要用于實現(xiàn)檔案管理,獎懲管理,調(diào)動管理和考評管理的功能。工資管理。該模塊主要用于實現(xiàn)考勤津貼和工資總結(jié)的功能。系統(tǒng)管理。該模塊主要用于實現(xiàn)部門管理和數(shù)據(jù)備份的功能。用戶管理。該模塊主要用于實現(xiàn)操作員管理,修改口令和更改操作員的功能。退出。該模塊主要用于實現(xiàn)系統(tǒng)推出的功能。3.2.2系統(tǒng)功能結(jié)構(gòu)人事工資管理系統(tǒng)功能結(jié)構(gòu)如圖3.2所示。圖3.2人事工資管理系統(tǒng)組織結(jié)構(gòu)圖3.3系統(tǒng)設計3.3.1設計目標本系統(tǒng)屬于中小型的數(shù)據(jù)庫管理系統(tǒng),可以對中小企業(yè)人事工資管理系統(tǒng)進行有效的管理。通過本系統(tǒng)可以達到以下目標:靈活地錄入數(shù)據(jù),使信息傳遞更快捷;系統(tǒng)采用人機交互方式,界面美觀友好,信息查詢靈活,數(shù)據(jù)存儲安全可靠實現(xiàn)員工獎罰信息管理;實現(xiàn)員工工資自動計算;實現(xiàn)員工考評調(diào)動管理;對用戶輸入的數(shù)據(jù),進行嚴格的數(shù)據(jù)檢驗,盡可能避免人為錯誤;對系統(tǒng)最大限度地實現(xiàn)了易維護性和易操作性。3.3.2開發(fā)及運行環(huán)境系統(tǒng)開發(fā)平臺:MicrosoftVisual2005.系統(tǒng)開發(fā)語言:C#。數(shù)據(jù)庫管理系統(tǒng)軟件:SQLServer2000.運行平臺:WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2003(SP1).運行環(huán)境:Microsoft.NETFrameworkSDKv2.0.分辨率:最佳效果1024*768像素。3.3.3數(shù)據(jù)庫設計本系統(tǒng)采用SQLServer2000作為前臺數(shù)據(jù)庫,數(shù)據(jù)庫名稱為db_PMS,其中包含8張數(shù)據(jù)表,下面分別介紹。1.數(shù)據(jù)表E-R圖本系統(tǒng)中規(guī)劃出的實體主要有考評管理信息實體,部門名稱信息實體,員工檔案信息實體,員工工資信息實體,獎罰管理信息實體,調(diào)動管理信息實體,登陸用戶信息實體和員工職稱信息實體等各個功能的實體圖如下所示:圖3.4考評管理信息實體關(guān)系圖圖3.6員工檔案信息實體關(guān)系圖。圖3.5部門名稱信息實體關(guān)系圖圖3.8獎罰管理信息實體關(guān)系圖3.7員工工資信息實體關(guān)系圖圖3.9調(diào)動管理信息實體關(guān)系圖圖3.10登錄用戶信息實體關(guān)系圖圖3.11員工職稱信息實體關(guān)系圖3.數(shù)據(jù)表的結(jié)構(gòu)tb_check(考評管理信息表)。表tb_check用于保存員工考評管理基本信息,該表的結(jié)構(gòu)如表3.1所示。表3.1考評管理信息表字段名數(shù)據(jù)類型長度主鍵否描述IDint4是系統(tǒng)編號PIDvarchar50否員工編號Pnamevarchar50否員工姓名Pdepvarchar50否員工部門PKpcontentvarchar50否考評內(nèi)容PKpResultvarchar50否考評結(jié)果PKpscoreint4否考評分數(shù)PKpPeoplevarchar50否考評人PKpDatevarchar50否考評日期tb_department(部門名稱信息表)。表tb_department用于保存部門名稱,該表的結(jié)構(gòu)如表3.2所示。表3.2部門名稱信息表字段名數(shù)據(jù)類型長度主鍵否描述IDint4是系統(tǒng)編號DepNamevarchar50否部門名稱tb_employee(員工檔案信息表)。表tb_employee用于保存員工檔案的詳細信息,該表的結(jié)構(gòu)如表3.3所示。表3.3員工檔案信息表字段名數(shù)據(jù)類型長度主鍵否描述IDint4是系統(tǒng)編號employeeIDvarchar50否員工編號employeeNamevarchar50否員工姓名employeeSexvarchar50否員工性別employeeDeptvarchar50否員工部門employeeBirthdayvarchar50否員工生日employeeNationvarchar50否員工民族employeeMarriagevarchar50否婚姻狀況employeeDutyvarchar50否職務名稱employeePhonevarchar50否聯(lián)系電話employeeAccessionvarchar50否就職日期employeePhotoimage16否員工相片employeePaydecimal9否基本工資tb_pay(員工工資信息表)。表tb_pay用于保存員工工資的詳細信息,該表的結(jié)構(gòu)如表3.4所示。表3.4員工工資信息表字段名數(shù)據(jù)類型長度主鍵否描述IDint4是系統(tǒng)編號YIDvarchar50否員工編號YNamevarchar50否員工姓名YSexvarchar50否員工性別Ydepvarchar50否員工部門YZhiwuvarchar50否員工職務YBasePaydecimal9否基本工資YJintiedecimal9否職務津貼Yjiangjindecimal9否獎勵金額YFKdecimal9否罰款金額Yquanqindecimal9否全勤獎金Yjiabandecimal9否加班工資Yyingfadecimal9否應發(fā)工資Ygerendecimal9否個人所得稅Ypaydecimal9否員工工資YMonthvarchar50否工資月份tb_prize(獎罰管理信息表)。表tb_prize用于保存獎罰管理信息,該表的結(jié)構(gòu)如表3.5所示。表3.5獎罰管理信息表字段名數(shù)據(jù)類型長度主鍵否描述IDint4是系統(tǒng)編號UserIDvarchar50否員工編號UserNamevarchar50否員工姓名UserDepvarchar50否員工部門UserJFvarchar50否獎罰類型UserJFcontentvarchar50否獎罰內(nèi)容UserJLMoneydecimal9否獎勵金額UserFKMoneydecimal9否罰款金額UserJFDatevarchar50否獎罰日期UserCXDatevarchar50否撤銷日期tb_redeploy(調(diào)動管理信息表)。表tb_redeploy用于保存員工的調(diào)動管理信息,該表的結(jié)構(gòu)如表3.6所示。表3.6調(diào)動管理信息表字段名數(shù)據(jù)類型長度主鍵否描述IDint4是系統(tǒng)編號UIDvarchar50否員工編號UNamevarchar50否員工姓名URemoveDatevarchar50否調(diào)動日期UOldDepvarchar0否原部門UNewDepvarchar50否現(xiàn)部門UOldJobvarchar50否原職務UnewJobvarchar50否現(xiàn)職務UOldPaydecimal9否原工資UNewPaydecimal9否現(xiàn)工資UPayExplainvarchar50否工資說明tb_User(登錄用戶信息表)。表tb_User用于存放員工調(diào)動和工資說明信息,該表的結(jié)構(gòu)如表3.7所示表3.7登錄用戶信息表字段名數(shù)據(jù)類型長度主鍵否描述IDint4是系統(tǒng)編號UIDvarchar50否員工編號UNamevarchar50否員工姓名URemoveDatevarchar50否調(diào)動日期UPayExplainvarchar50否工資說明tb_userJob(員工職稱信息表)。表tb_userJob用于存放員工職稱信息,該表的結(jié)構(gòu)如表3.8所示。表3.8員工職稱信息表字段名數(shù)據(jù)類型長度主鍵否描述IDint4是系統(tǒng)編號employeeDutyvarchar50否職務名稱3.4.4技術(shù)準備在開發(fā)本系統(tǒng)時,使用的比較多的技術(shù)是SqlDataReader對象的HasRows屬性和COUNT聚合函數(shù)。HasRows屬性用于判斷SqlDataReader是否包含一行或多行,其類型為bool類型。如果SqlDataReader對象中包含一行或多行則返回True,否則返回False。COUNT聚合函數(shù)用于返回指定組中項目的數(shù)量,下面分別對SqlDataReader對象的HasRows屬性和COUNT聚合函數(shù)進行詳細講解[1]。1.HasRows屬性進行本系統(tǒng)的登錄模塊,用戶只需輸入用戶名和密碼,單擊【登陸】按鈕進行驗證。登錄模塊以登陸的用戶名和密碼是否正確,下面介紹SqlDataReader對象的HasRows屬性。HasRows屬性用于獲取一個值,該值指示SqlDataReader是否包含一行或多行。語法:PublicoverrideboolHasRows{get:}屬性值:如果SqlDataReader包含一行或多行,則為True;否則為false例如,驗證登錄用戶名和密碼是否正確,可以通過以下代碼實現(xiàn):SqlConnectionconn=BaseClass.DBConn.CyCon();//連接數(shù)據(jù)庫Conn.Open();//打開數(shù)據(jù)庫//實例化SqlCommandSqlCommandcmd=newSqlCommand("select*fromtb_UserwhereUserName='"+name+"'andUserPwd='"+pwd+"'",conn);//通過ExecuteReader方法實例化SqlDataReaderSqlDataReadersdr=cmd.ExecuteReader();sdr.Read();//使用Read方法讀取記錄集//使用HasRows屬性判斷用戶名和密碼是否正確if(sdr.HasRows){//如果返回值為True,則說明用戶名和密碼正確,彈出提示MessageBox.Show(“登陸成功”,“警告”,MessageBoxButton.OK,MessageBoxIcon.Warning);}2.COUNT聚合函數(shù)COUNT聚合函數(shù)用于返回組中項目的數(shù)量。語法:COUNT({[ALL|DISTINCT]expression}|*)參數(shù)說明:ALL:對所有的值進行聚合函數(shù)運算。ALL是默認設置。DISTINCT:指定COUNT返回唯一非空的數(shù)量。Expression:一個表達式,其類型是除uniqueidentifier,text,image或ntext之外的任何類型。不允許使用聚合函數(shù)和子查詢。返回類型:int。例如:在數(shù)據(jù)中查找年齡大于50歲的人的數(shù)量,可以使用下面的查詢語句實現(xiàn):Selectcount(*)fromtb_peoplewhereage>50第四章系統(tǒng)實現(xiàn)與調(diào)試第四章系統(tǒng)實現(xiàn)與調(diào)試4.1主要功能模塊設計4.1.1系統(tǒng)登錄設計系統(tǒng)登錄主要用于對進入人事工資管理系統(tǒng)的用戶進行安全檢查,以防止非法用戶進入系統(tǒng)。在登錄時,只有合法的用戶,才可以進入系統(tǒng)。系統(tǒng)登錄窗體運行結(jié)果如圖4.1所示圖4.1系統(tǒng)登錄1.窗體設計新建一個Windows窗體,命名為frmLogin.cs,主要用于實現(xiàn)系統(tǒng)登功能,該窗體用到的控件及屬性設置[2]如表4.1所示。表4.1窗體用到的控件控件類型控件名稱主要屬性設置用途Label控件label1將其AutoSize屬性設置為”true”登錄用戶姓名Label2將其AutoSize屬性設置為”true”登錄用戶密碼TextBox控件txtUserName無選擇登錄用戶名txtUserPwdUseSystemPasswordCharTrue將登錄用戶密碼轉(zhuǎn)換為掩碼Button控件btnLogin無登錄btnCancle無退出2.代碼設計單擊【登錄】按鈕,程序調(diào)用DBConnection類中的MyConnection方法接數(shù)據(jù)庫,然后通過SqlDataReader對象的HasRows屬性判斷用戶輸入的用戶名和密碼是否正確。如果正確,則登錄人事工資管理系統(tǒng),并將用戶名傳到主窗體中:否則,彈出“用戶名或密碼錯誤”信息提示?!镜卿洝堪粹o的Click時間代碼如下:DBOperateoperate=newDBOperate();//實例化DBOperate類privatevoidbtnLogin_Click(objectsender,EventArgse)//按鈕的Click事件{try//調(diào)用try…catch語句{if(txtUserName.Text==""||txtUserPwd.Text=="")//判斷是否輸入用戶名和密碼{MessageBox.Show("用戶名或密碼不能為空!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}else{stringname=txtUserName.Text.Trim();//獲取登錄用戶名stringpwd=txtUserPwd.Text.Trim();//獲取登錄密碼SqlConnectionconn=PMSClass.DBConnection.MyConnection();conn.Open();//打開數(shù)據(jù)庫連接//實例化SqlCommand對象SqlCommandcmd=newSqlCommand("select*fromtb_UserwhereUserName='"+name+"'andUserPwd='"+pwd+"'",conn);//使用ExecuteReader方法實例化SqlDataReader對象SqlDataReadersdr=cmd.ExecuteReader();sdr.Read();//使用Read方法讀取記錄集//通過HasRows屬性判斷是否存在登錄的用戶名和密碼if(sdr.HasRows){stringtime=DateTime.Now.ToString();//獲取當前系統(tǒng)時間//聲明一個更新數(shù)據(jù)庫的SQL語句,用于更新用戶登錄時間stringsql="updatetb_UsersetLoginTime='"+time+"'whereUserName='"+name+"'";//調(diào)用OperateData方法執(zhí)行SQL語句operate.OperateData(sql);conn.Close();//關(guān)閉連接this.Hide();//隱藏登錄窗口frmMainMain=newfrmMain();//實例化主窗體Main.User=name;//傳遞登錄用戶名Main.Logintime=time;//傳遞登錄時間Main.Show();//打開主窗體}else{txtUserName.Text="";//清空登錄用戶名文本框txtUserPwd.Text="";//清空登錄密碼文本框MessageBox.Show("用戶名或密碼錯誤!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);//彈出錯誤提示}}}catch(Exceptionex){MessageBox.Show(ex.Message);//彈出捕獲的錯誤信息}}4.1.2系統(tǒng)主窗體當用戶通過登錄窗體成功登陸之后,會進入系統(tǒng)的主窗體。在主窗體中提供系統(tǒng)的各項功能連接,通過主窗體可以快速地打開系統(tǒng)的各個功能窗口。主窗體如圖4.2所示。圖4.2系統(tǒng)主窗體1.窗體設計新建一個Windows窗體,命名為frmMain.cs,主要用于實現(xiàn)系統(tǒng)主窗體的設計,該窗體要用到的控件及屬性設置如表4.2所示[3]。表4.2窗體主要用到的控件控件類型控件名稱主要屬性設置用途MenuStrip控件MenuStrip1添加6個ToolStripMenuItem用于實現(xiàn)系統(tǒng)的功能按鈕StatusStrip控件StatusStrip1添加5個ToolStripStatusLabel用于顯示系統(tǒng)的狀態(tài)信息2.代碼設計當主窗體加載時,在主窗體的狀態(tài)欄中顯示登錄用戶名和登錄時間,并且根據(jù)登錄用戶的權(quán)限設置其操作權(quán)限,關(guān)鍵代碼如下:privatevoidfrmMain_Load(objectsender,EventArgse){toolStripStatusLabel2.Text=User;toolStripStatusLabel5.Text=Logintime;toolStripMenuItem1.Text=DateTime.Now.ToLongTimeString();stringsql="select*fromtb_UserwhereUserName='"+User+"'";DataSetds=operate.GetTable(sql);stringpower=ds.Tables[0].Rows[0][3].ToString();if(power=="一般用戶"){系統(tǒng)管理ToolStripMenuItem.Enabled=false;操作員管理ToolStripMenuItem.Enabled=false;}}當選擇菜單欄中的“人事管理”/“檔案管理”命令,會打開檔案管理窗體,代碼如下:privatevoid檔案管理ToolStripMenuItem_Click(objectsender,EventArgse){frmEmployeeemployee=newfrmEmployee();employee.ShowDialog();}選擇菜單欄中的【退出】按鈕,會彈出提示,詢問用戶是否退出系統(tǒng),代碼如下privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse){if(MessageBox.Show("確定退出本系統(tǒng)嗎?","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Exclamation)==DialogResult.OK){Application.Exit();}}4.1.3檔案管理窗體檔案管理窗體用于管理所有員工的檔案信息,在檔案管理窗體中可以添加,修改,刪除和查找員工信息,雙擊某條員工信息,可以打開修改員工檔案的窗體,在此窗體中可以對信息進行修改并顯示員工的詳細信息。檔案管理窗體運行結(jié)果如圖4.3所示。圖4.3檔案管理窗體1.窗體設計新建一個Windows窗體,命名為frmEmployee.cs,主要用于實現(xiàn)員工檔案的添加,修改,刪除和查找功能[4],該窗體用到的控件及屬性設置如表4.3所示。表4.3窗體主要用到的控件控件類型控件名稱主要屬性設置用途MenuStriptoolStripLabel1Text屬性設置為“增加”用來打開添加檔案窗體toolStripLabel2Text屬性設置為“修改”用來打開修改檔案窗體toolStripLabel3Text屬性設置為“刪除”用來刪除指定的信息toolStripTextBox1無輸出查詢關(guān)鍵字DataGridViewdgvEmployeeAllowUserToAddRowsAllowUserToDeleteRowsAllowUserToResizeColumnssAllowUserToResizeRows屬性設置為False。Readonly屬性設置為True,SelectionMode設置為FullRowSelect禁止添加行,禁止刪除行,禁止調(diào)整列大小,禁止調(diào)節(jié)行大小,將控件設置為只讀,并且數(shù)據(jù)是去正行選擇StatusStripstatusStrip1添加toolStripStatusLabel1用于顯示員工信息數(shù)量ImageListimageList1Image中添加一張圖片用于TreeView控件中添加圖標PictureBoxpictureBox1SizeMode屬性設置為StrecthImage控件自動調(diào)節(jié)圖片大小TreeViewtreeView1無顯示部門結(jié)構(gòu)2.代碼設計檔案管理窗體加載時,會檢索出員工檔案表tb_employee中的所有信息,并將其綁定到DataGridView控件上,同時設置TreeView控件的節(jié)點圖標以及選擇后的節(jié)點圖標,并且動態(tài)的將所有的部門名稱添加到TreeView控件中。關(guān)鍵代碼如下:DBOperateoperate=newDBOperate();privatevoidfrmEmployee_Load(objectsender,EventArgse){stringstr="selectIDas'編號',employeeIDas'員工編號',employeeNameas'員工姓名',employeeSexas'員工性別',employeeDeptas'所屬部門',employeeBirthdayas'員工生日',employeeNationas'民族',employeeMarriageas'婚姻狀況',employeeDutyas'擔任職務',employeePhoneas'聯(lián)系電話',employeeAccessionas'就職日期'fromtb_employee";operate.BindDataGridView(dgvEmployee,str);dgvEmployee.Columns[0].Width=40;dgvEmployee.Columns[1].Width=80;treeView1.ImageList=imageList1;treeView1.ImageIndex=0;treeView1.SelectedImageIndex=0;stringsql="selectcount(*)fromtb_employee";toolStripStatusLabel2.Text=operate.HumanNum(sql).ToString()+"人";TreeNodetn=treeView1.Nodes.Add("所有部門");SqlConnectionconn=DBConnection.MyConnection();conn.Open();SqlCommandcmd=newSqlCommand("select*fromtb_department",conn);SqlDataReadersdr=cmd.ExecuteReader();while(sdr.Read()){tn.Nodes.Add(sdr["DepName"].ToString());}sdr.Close();conn.Close();treeView1.ExpandAll();}當單擊TreeView控件中某個部門時,主窗體右側(cè)的DataGridView控件中將顯示選中部門的所有員工檔案,該功能是在TreeView控件的AfterSelect事件下實現(xiàn)的[5],代碼如下:privatevoidtoolStripTextBox1_TextChanged(objectsender,EventArgse){stringstr="selectIDas'編號',employeeIDas'員工編號',employeeNameas'員工姓名',employeeSexas'員工性別',employeeDeptas'所屬部門',employeeBirthdayas'員工生日',employeeNationas'民族',employeeMarriageas'婚姻狀況',employeeDutyas'擔任職務',employeePhoneas'聯(lián)系電話',employeeAccessionas'就職日期'fromtb_employeewhereemployeeNamelike'%"+toolStripTextBox1.Text.Trim()+"%'";operate.BindDataGridView(dgvEmployee,str);dgvEmployee.Columns[0].Width=40;dgvEmployee.Columns[1].Width=80;}單擊某條員工的檔案,在檔案管理窗體中會通過PictureBox控件顯示員工的照片,該功能主要是通過調(diào)用DBOperate公共類中的Get_Image方法從數(shù)據(jù)庫中讀取指定的圖片來實現(xiàn)的,代碼如下:privatevoiddgvEmployee_Click(objectsender,EventArgse){if(dgvEmployee.SelectedCells.Count>0){stringYGName=dgvEmployee.SelectedCells[1].Value.ToString();operate.Get_Image(YGName,pictureBox1);}}單擊【增加】按鈕,打開添加員工信息窗體,該窗體中,可以向數(shù)據(jù)庫中添加新的員工信息。添加員工信息窗體如圖4.4所示:圖4.4添加員工信息窗體當員工檔案信息填寫完整后,單擊【保存】按鈕,首先對輸入的數(shù)據(jù)進行檢查驗證,如果符合條件,就將輸入的員工檔案信息添加到數(shù)據(jù)庫中,代碼如下:privatevoidtoolStripLabel1_Click(objectsender,EventArgse){if(txtYGBirthday.Text.Trim()==""||txtYGJiuzhi.Text.Trim()==""||txtYGminzu.Text.Trim()==""||txtYGName.Text.Trim()==""||txtYGNum.Text.Trim()==""||txtYGPhone.Text.Trim()==""||txtYGZhiwu.Text.Trim()==""||txtYGPay.Text.Trim()==""){MessageBox.Show("請將信息填寫完整","警告",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}else{if(txtYGPhone.Text.Length!=11){MessageBox.Show("手機號碼為位");return;}else{stringstr="selectcount(*)fromtb_employeewhereemployeeID='"+txtYGNum.Text+"'";inti=operate.HumanNum(str);if(i>0){MessageBox.Show("該員工編號已經(jīng)存在","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}else{stringstrSql="insertintotb_employee(employeeID,employeeName,employeeSex,employeeDept,employeeBirthday,employeeNation,employeeMarriage,employeeDuty,employeePhone,employeeAccession,employeePay)values('"+txtYGNum.Text.Trim()+"','"+txtYGName.Text.Trim()+"','"+cbbYGSex.Text+"','"+cbbYGBumen.Text+"','"+txtYGBirthday.Text+"','"+txtYGminzu.Text.Trim()+"','"+cbbYGHunyin.Text+"','"+txtYGZhiwu.Text.Trim()+"','"+txtYGPhone.Text.Trim()+"','"+txtYGJiuzhi.Text+"','"+txtYGPay.Text.Trim()+"')";intnum=operate.OperateData(strSql);operate.SaveImage(this.txtYGNum.Text.Trim(),openFileDialog1);if(num>0){MessageBox.Show("員工信息添加成功","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);}}}}}單擊【修改】按鈕,打開修改員工信息窗體,該窗體中可以對員工信息進行修改,修改員工信息窗體如圖4.5所示。圖4.5修改員工個人信息如果想修改某條員工信息,只需修改員工的某些數(shù)據(jù),然后單擊【修改】按鈕即可。在【修改】按鈕的Click事件中首先判斷修改的是否符合條件,如果符合條件則聲明一個update語句將修改后的數(shù)據(jù)更新到數(shù)據(jù)庫中,代碼如下:privatevoidtoolStripLabel1_Click(objectsender,EventArgse){try{if(txtYGBirthday.Text.Trim()==""||txtYGJiuzhi.Text.Trim()==""||txtYGminzu.Text.Trim()==""||txtYGName.Text.Trim()==""||txtYGNum.Text.Trim()==""||txtYGPhone.Text.Trim()==""||txtYGZhiwu.Text.Trim()==""||txtYGPay.Text.Trim()==""){MessageBox.Show("請將信息填寫完整","警告",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}else{if(txtYGPhone.Text.Length!=11){MessageBox.Show("手機號碼為位");return;}else{stringstrUpdateSql="updatetb_employeesetemployeeName='"+txtYGName.Text.Trim()+"',employeeSex='"+cbbYGSex.Text+"',employeeDept='"+cbbYGBumen.Text+"',employeeBirthday='"+txtYGBirthday.Text+"',employeeNation='"+txtYGminzu.Text.Trim()+"',employeeMarriage='"+cbbYGHunyin.Text+"',employeeDuty='"+txtYGZhiwu.Text.Trim()+"',employeePhone='"+txtYGPhone.Text.Trim()+"',employeeAccession='"+txtYGJiuzhi.Text+"',employeePay='"+txtYGPay.Text.Trim()+"'whereemployeeID='"+YGID+"'";intnum=operate.OperateData(strUpdateSql);if(openFileDialog1.FileName=="openFileDialog1"){}else{operate.SaveImage(this.txtYGNum.Text.Trim(),openFileDialog1);}if(num>0){stringupdate1="updatetb_redeploysetUName='"+txtYGName.Text+"',UOldDep='"+cbbYGBumen.Text+"',UOldJob='"+txtYGZhiwu.Text+"',UOldPay='"+txtYGPay.Text+"'whereUID='"+txtYGNum.Text+"'";stringupdate2="updatetb_prizesetUserName='"+txtYGName.Text+"',UserDep='"+cbbYGBumen.Text+"'whereUserID='"+txtYGNum.Text+"'";stringupdate3="updatetb_paysetYName='"+txtYGName.Text+"',YSex='"+cbbYGSex.Text+"',Ydep='"+cbbYGBumen.Text+"',YZhiwu='"+txtYGZhiwu.Text+"',YBasePay='"+txtYGPay.Text+"'whereYID='"+txtYGNum.Text+"'";stringupdate4="updatetb_checksetPname='"+txtYGName.Text+"',Pdep='"+cbbYGBumen.Text+"'wherePID='"+txtYGNum.Text+"'";operate.OperateData(update1);operate.OperateData(update2);operate.OperateData(update3);operate.OperateData(update4);MessageBox.Show("員工信息修改成功","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);this.Close();}}}}單擊檔案管理窗體中的【刪除】按鈕,刪除選擇的員工檔案,代碼如下:privatevoidtoolStripLabel3_Click(objectsender,EventArgse){try{if(dgvEmployee.SelectedCells.Count==0){MessageBox.Show("請選擇要刪除的數(shù)據(jù)","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);return;}else{stringYGID=dgvEmployee.SelectedCells[1].Value.ToString();stringDelSql="deletefromtb_employeewhereemployeeID='"+YGID+"'";operate.OperateData(DelSql);

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論