版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
頁(yè)電子信息工程專(zhuān)業(yè)課程設(shè)計(jì)題單班級(jí)一三82052學(xué)生郭國(guó)信課程名稱超市進(jìn)銷(xiāo)存管理系統(tǒng)課題設(shè)計(jì)要求利用visualc#作為前臺(tái)開(kāi)發(fā)工具,SQLServer后臺(tái)數(shù)據(jù)庫(kù)管理,實(shí)現(xiàn)一超市進(jìn)銷(xiāo)存管理系統(tǒng)。實(shí)現(xiàn)具體功能:1基本信息管理(員工信息、供應(yīng)商信息管理)2進(jìn)貨管理(商品進(jìn)貨,商品查詢)3銷(xiāo)售管理(商品銷(xiāo)售、商品退貨)4庫(kù)存管理(庫(kù)存統(tǒng)計(jì)、庫(kù)存查詢、庫(kù)存報(bào)警)課題發(fā)給日期2016.06.08課程設(shè)計(jì)完成日期2016.07.03指導(dǎo)教師方芳評(píng)語(yǔ):評(píng)分:第一章摘要1.1設(shè)計(jì)開(kāi)發(fā)的意義隨著超市行業(yè)競(jìng)爭(zhēng)日益激烈,提高進(jìn)銷(xiāo)存管理的工作效率,改善超市內(nèi)部以及整個(gè)供應(yīng)鏈各個(gè)環(huán)節(jié)的管理、調(diào)度及資源配置成為了超市當(dāng)前必須考慮的問(wèn)題。而解決這些問(wèn)題的途徑之一,就是將計(jì)算機(jī)引入到管理機(jī)制中來(lái)。隨著技術(shù)的發(fā)展,超市會(huì)有很多連鎖店,使用此超市管理系統(tǒng),可以進(jìn)行連網(wǎng)管理。1.2設(shè)計(jì)應(yīng)用系統(tǒng)的任務(wù)及目標(biāo)登錄界面有普通員工和管理員,普通員工需要輸入用戶名和密碼,管理員只需輸入用戶名即可進(jìn)入。超市管理系統(tǒng)主界面有一個(gè)“歡迎光臨”的滾動(dòng)條。員工信息表和供應(yīng)商信息表的查找按鈕,鼠標(biāo)只要一接觸,便可自動(dòng)查詢,而不需要點(diǎn)擊鼠標(biāo)。(利用查找按鈕事件的MouseEnter實(shí)現(xiàn)的)關(guān)閉超市管理系統(tǒng)主界面時(shí),需要彈出一個(gè)對(duì)話框,是否需要關(guān)閉此系統(tǒng)。(通過(guò)登錄界面驗(yàn)證用戶的提示下,考慮到關(guān)閉此系統(tǒng)時(shí)是否確定需要關(guān)閉)1.3設(shè)計(jì)開(kāi)發(fā)及運(yùn)行的軟硬件環(huán)境系統(tǒng)開(kāi)發(fā)平臺(tái):MicrosoftVisualStudioC#3.5系統(tǒng)開(kāi)發(fā)語(yǔ)言:VisualC#.NET數(shù)據(jù)庫(kù)管理軟件:MicrosoftSQLServer2005運(yùn)行平臺(tái):Windows窗體應(yīng)用程序運(yùn)行環(huán)境:MicrosoftVisualStudio2008目錄第一章摘要 一五685335\h21.1設(shè)計(jì)開(kāi)發(fā)的意義 一五685336\h21.2設(shè)計(jì)應(yīng)用系統(tǒng)的任務(wù)及目標(biāo) 一五685337\h21.3設(shè)計(jì)開(kāi)發(fā)及運(yùn)行的軟硬件環(huán)境 一五685338\h2第二章系統(tǒng)分析與設(shè)計(jì) 一五685339\h42.1系統(tǒng)需求分析 一五685340\h42.1.1數(shù)據(jù)流圖 一五685341\h42.1.2數(shù)據(jù)字典 一五685342\h52.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì) 一五685343\h52.2.1員工信息實(shí)體E—R圖 一五685344\h52.2.2進(jìn)貨信息實(shí)體E—R圖 一五685345\h62.2.3供應(yīng)商信息實(shí)體E—R圖 一五685346\h62.2.4庫(kù)存信息實(shí)體E—R圖 一五685347\h62.3數(shù)據(jù)庫(kù)邏輯,物理結(jié)構(gòu)設(shè)計(jì) 一五685348\h72.3.1關(guān)系模式 一五685349\h72.3.2關(guān)系的屬性設(shè)計(jì) 一五685350\h72.4數(shù)據(jù)庫(kù)的創(chuàng)建 一五685351\h102.5系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì) 一五685352\h一三第三章系統(tǒng)開(kāi)發(fā)及實(shí)現(xiàn) 一五685353\h143.1界面設(shè)計(jì)效果 一五685354\h143.1.1登錄界面 一五685355\h143.1.2員工信息 一五685356\h一五3.1.3供應(yīng)商信息 一五685357\h一五3.1.4商品進(jìn)貨信息 一五685358\h163.1.5進(jìn)貨信息查詢 一五685359\h163.1.6商品銷(xiāo)售信息 一五685360\h173.1.7商品退貨信息 一五685361\h173.1.8庫(kù)存警報(bào) 一五685362\h一八3.1.9庫(kù)存查詢 一五685363\h一八3.1.10數(shù)據(jù)備份 一五685364\h193.1.11數(shù)據(jù)還原 一五685365\h193.2實(shí)現(xiàn)方法 一五685366\h20第四章結(jié)論 一五685367\h21參考文獻(xiàn) 一五685368\h22附錄 一五685369\h23(1)、員工信息表窗體frmEmpInfo的代碼: 一五685370\h23(2)、員工信息表方法tb_EmpInfoMenthod的代碼: 一五685371\h32第二章系統(tǒng)分析與設(shè)計(jì)2.1系統(tǒng)需求分析用戶對(duì)進(jìn)銷(xiāo)存系統(tǒng)的需求具有普遍性。此超市管理系統(tǒng)適用于超市的采購(gòu)、銷(xiāo)售和倉(cāng)庫(kù)部門(mén),對(duì)超市采購(gòu)、銷(xiāo)售及倉(cāng)庫(kù)的業(yè)務(wù)全過(guò)程進(jìn)行有效控制和跟蹤。使用此超市管理系統(tǒng)可有效減少盲目采購(gòu)、降低采購(gòu)成本、合理控制庫(kù)存、減少資金占用并提高市場(chǎng)靈敏度,提升超市的市場(chǎng)競(jìng)爭(zhēng)力。此系統(tǒng)采用人機(jī)交互的方式,界面美觀友好。信息查詢靈活、操作方便,數(shù)據(jù)存儲(chǔ)安全可靠。能夠?qū)M(jìn)貨信息進(jìn)行有效的管理。對(duì)用戶輸入的數(shù)據(jù),進(jìn)行嚴(yán)格的數(shù)據(jù)校驗(yàn),盡可能避免人為錯(cuò)誤。能夠?qū)ι唐蜂N(xiāo)售信息進(jìn)行有效的管理。允許顧客退貨。能夠準(zhǔn)確、詳細(xì)地管理商品庫(kù)存信息。當(dāng)庫(kù)存的商品數(shù)量達(dá)到一定程序,給出提示。可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行備份和還原。系統(tǒng)應(yīng)最大限度地實(shí)現(xiàn)易維護(hù)性和易操作性。登錄2.1.1數(shù)據(jù)流圖登錄驗(yàn)證驗(yàn)證用戶系統(tǒng)主窗體系統(tǒng)主窗體系統(tǒng)維護(hù)基本檔案庫(kù)存管理銷(xiāo)售管理進(jìn)貨管理 系統(tǒng)維護(hù)基本檔案庫(kù)存管理銷(xiāo)售管理進(jìn)貨管理圖數(shù)據(jù)字典此系統(tǒng)的登錄界面有驗(yàn)證用戶的信息,只要登錄成功,才可進(jìn)入超市管理系統(tǒng)的主窗體。主窗體可以連接到系統(tǒng)的所有功能菜單,包括基本檔案,進(jìn)貨管理,銷(xiāo)售管理,庫(kù)存管理,系統(tǒng)維護(hù)?;緳n案包括員工信息和供應(yīng)商信息。員工信息表是因?yàn)殚_(kāi)發(fā)過(guò)程中要考慮系統(tǒng)的安全性,不是任何人都可以操作系統(tǒng)的,才設(shè)置存儲(chǔ)管理系統(tǒng)的員工信息表;供應(yīng)商信息表是因?yàn)槌械慕?jīng)營(yíng)離不開(kāi)與供應(yīng)商的合作,而每件商品對(duì)應(yīng)不同的供應(yīng)商,此時(shí)必須在數(shù)據(jù)庫(kù)中建立一個(gè)供應(yīng)商信息表,用于存儲(chǔ)所有供應(yīng)商信息。進(jìn)貨管理包括商品進(jìn)貨信息和進(jìn)貨信息查詢,建立一個(gè)進(jìn)貨信息表是因?yàn)槌械倪\(yùn)營(yíng)離不開(kāi)貨物往來(lái),日常貨物的購(gòu)買(mǎi)是非常重要的,此用于存儲(chǔ)進(jìn)貨的詳細(xì)信息。銷(xiāo)售管理分為商品銷(xiāo)售信息和商品退貨信息,商品銷(xiāo)售信息表為了時(shí)刻了解超市銷(xiāo)售利潤(rùn),需要對(duì)商品的銷(xiāo)售情況有所了解;商品退貨信息表是因?yàn)楫?dāng)顧客對(duì)某件商品不滿意時(shí),可以要求進(jìn)貨,同時(shí)超市經(jīng)營(yíng)者也要詳細(xì)地了解退貨信息。庫(kù)存管理分為庫(kù)存警報(bào)和庫(kù)存查詢。因?yàn)槌卸ㄆ谝獙?duì)貨物進(jìn)行補(bǔ)充,在進(jìn)貨之前要了解剩余貨物的數(shù)量,此時(shí)需要在數(shù)據(jù)庫(kù)中建立一個(gè)庫(kù)存信息表用于存儲(chǔ)剩余貨物的情況。系統(tǒng)維護(hù)包括數(shù)據(jù)備份和數(shù)據(jù)還原,以防數(shù)據(jù)丟失,所以需要備份數(shù)據(jù)和還原數(shù)據(jù)。2.2數(shù)據(jù)庫(kù)概念結(jié)構(gòu)設(shè)計(jì)2.2.1員工信息實(shí)體E—R圖圖進(jìn)貨信息實(shí)體E—R圖圖供應(yīng)商信息實(shí)體E—R圖圖庫(kù)存信息實(shí)體E—R圖圖2.42.3數(shù)據(jù)庫(kù)邏輯,物理結(jié)構(gòu)設(shè)計(jì)2.3.1關(guān)系模式Emp(EmpID,EmpName,EmpLoginName,EmpLoginPwd,EmpSex,EmpBirthday,EmpDept,EmpPost,EmpPhone,EmpPhoneM,EmpAddress,EmpFlag)其中EmpID為主碼;Company(CompanyID,CompanyName,CompanyDirector,ompanyPhoCne,CompanyFax,CompanyAddress,CompanyRemark,ReDateTime,F(xiàn)lag)其中CompanyID為主碼;2.3.2關(guān)系的屬性設(shè)計(jì)字段名數(shù)據(jù)類(lèi)型長(zhǎng)度主鍵描述EmpIDnvarchar20是員工編號(hào)EmpNamenvarchar20否員工姓名EmpLoginNamenvarchar20否登錄IDEmpLoginPwdnvarchar20否登錄密碼EmpSexnvarchar4否員工性別EmpBirthdaydatetime8否員工生日EmpDeptnvarchar20否所屬部門(mén)EmpPostnvarchar20否員工職位EmpPhonenvarchar20否家庭電話EmpPhoneMnvarchar20否手機(jī)號(hào)碼EmpAddressnvarchar200否家庭住址EmpFlagint1否是否發(fā)布表2.1員工信息表字段名數(shù)據(jù)類(lèi)型長(zhǎng)度主鍵描述CompanyIDnvarchar50是供應(yīng)商編號(hào)CompanyNamenvarchar100否供應(yīng)商姓名CompanyDirectornvarchar50否聯(lián)系人姓名ompanyPhoCnenvarchar20否聯(lián)系人電話CompanyFaxnvarchar20否傳真CompanyAddressCompanyAddressCompanyAddressCompanyAddressCompanyAddressCompanyAddressCompanyAddressCompanyAddressCompanyAddressCompanyAddressCompanyAddressnvarchar200否地址CompanyRemarknvarchar400否備注ReDateTimedatetime8否加入日期Flagint1否是否發(fā)布表2.2供應(yīng)商信息表字段名數(shù)據(jù)類(lèi)型長(zhǎng)度主鍵描述GoodIDnvarchar20是商品編號(hào)EmpIdnvarchar20否操作員編號(hào)JhCompNamenvarchar100否供應(yīng)商名稱DepotNamenvarchar20否倉(cāng)庫(kù)名稱GoodsNamenvarchar50否商品名稱GoodsNumint4否商品數(shù)量GoodsUnitnvarchar20否商品計(jì)量單位GoodsJhPricenvarchar8否進(jìn)貨單價(jià)GoodsSellPricenvarchar8否銷(xiāo)售單價(jià)GoodsNeedPricenvarchar8否應(yīng)付金額GoodsNoPricenvarchar8否實(shí)付金額GoodsRemarknvarchar200否備注GoodsTimedatetime8否進(jìn)貨時(shí)間Flagint4否刪除標(biāo)記表2.3進(jìn)貨信息表字段名數(shù)據(jù)類(lèi)型長(zhǎng)度主鍵描述SellIDnvarchar20是銷(xiāo)售編號(hào)KcIDnvarchar50否庫(kù)存編號(hào)GoodsIDnvarchar20否商品編號(hào)EmpIDnvarchar20否員工編號(hào)GoodsNamenvarchar50否商品名稱SellGoodsNumint4否銷(xiāo)售數(shù)量SellGoodsTimedatetime8否銷(xiāo)售時(shí)間SellPricenvarchar8否銷(xiāo)售單價(jià)SellNeedPaynvarchar8否應(yīng)付金額SellHasPaynvarchar8否實(shí)付金額SellRemarknvarchar200否備注SellFlagint4否刪除標(biāo)記表2.4商品銷(xiāo)售信息表字段名數(shù)據(jù)類(lèi)型長(zhǎng)度主鍵描述ThGoodsIDnvarchar50是退貨商品編號(hào)KcIDnvarchar50否庫(kù)存編號(hào)GoodsIDnvarchar50是商品編號(hào)SellIDnvarchar50否銷(xiāo)售編號(hào)EmpIDnvarchar20否操作員編號(hào)ThGoodsNamenvarchar50否商品名稱ThGoodsNumint4否退貨數(shù)量ThGoodsTimedatetime8否退貨日期ThGoodsPricenvarchar8否退貨單價(jià)ThNeedPaynvarchar8否應(yīng)付金額ThHasPaynvarchar8否已退款金額ThGoodsResultnvarchar200否退貨原因表2.5商品退貨信息表字段名數(shù)據(jù)類(lèi)型長(zhǎng)度主鍵描述KcIDnvarchar50否庫(kù)存編號(hào)GoodsIDnvarchar50是商品編號(hào)JhCompNamenvarchar100否供應(yīng)商名稱KcDeptNamenvarchar20否倉(cāng)庫(kù)名稱kcGoodsNamenvarchar20否商品名稱KcNumint4否庫(kù)存數(shù)量KcAlarmNumint4否警報(bào)數(shù)量KcUnitnvarchar20否商品計(jì)量單位KcTimedatetime8否進(jìn)貨時(shí)間KcGoodsPricenvarchar8否進(jìn)貨價(jià)格KcSellPricenvarchar8否銷(xiāo)售價(jià)格KcEmpnvarchar50否進(jìn)貨人KcRemarknvarchar200否備注表2.6庫(kù)存信息表2.4數(shù)據(jù)庫(kù)的創(chuàng)建2.5系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)圖2.5第三章系統(tǒng)開(kāi)發(fā)及實(shí)現(xiàn)3.1界面設(shè)計(jì)效果3.1.1登錄界面3.1.2員工信息3.1.3供應(yīng)商信息3.1.4商品進(jìn)貨信息3.1.5進(jìn)貨信息查詢3.1.6商品銷(xiāo)售信息3.1.7商品退貨信息3.1.8庫(kù)存警報(bào)3.1.9庫(kù)存查詢3.1.10數(shù)據(jù)備份3.1.11數(shù)據(jù)還原3.2實(shí)現(xiàn)方法以員工信息表為例:1>.使用的控件:ToolStrip,Label,TextBox,DateTimePicke,ComboBox,DataGridView.2>.保存,取消,添加,修改,刪除按鈕的互斥更改。3>.用于初始化組件,將控件恢復(fù)到原始狀態(tài)。4>.點(diǎn)擊保存,取消,添加,修改,刪除按鈕時(shí),可以實(shí)現(xiàn)數(shù)據(jù)的添加,修改和刪除操作。5>.根據(jù)查詢條件,并輸入關(guān)鍵字,便可查詢你想要查詢的內(nèi)容。6>.點(diǎn)擊退出按鈕,即可退出此窗體。7>.Label為控件提供運(yùn)行時(shí)信息或說(shuō)明性文字。8>.TextBox允許用戶輸入文本,并提供多行編輯和密碼字符掩碼功能。9>.DateTimePicker控件,允許用戶選擇日期和時(shí)間,并以指定的格式顯示。10>.ToolStrip控件為此表提供工具欄。 11>xboBox顯示一個(gè)可編輯的文本框,其中包括一個(gè)允許值下拉列表,需要指出的是當(dāng)性別只有男女時(shí),我們需要設(shè)它的DropDownStyle屬性為DropDown,這樣,才不允許用戶更改性別信息。12>.DataGridView是為了顯示表的數(shù)據(jù)。一三>.在員工信息表的方法里,做三個(gè)查詢,一是用于登陸驗(yàn)證的查詢,二是用于窗體載入的查詢,三是用于DataGridView單元格觸發(fā)時(shí)索引的數(shù)據(jù)中記錄返回。14>.有添加,修改和刪除的方法,來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的更新。一五>.有一個(gè)自動(dòng)生成客戶編號(hào)的方法,而無(wú)需自己添加編號(hào)以商品進(jìn)貨信息表為例:1>.同員工信息表一樣,可以實(shí)現(xiàn)增刪改查的功能,但其中多了一個(gè)控件TreeView。2>.TreeView控件,填充商品類(lèi)別信息。3>.在添加商品進(jìn)貨單價(jià)和數(shù)量時(shí),會(huì)自動(dòng)算出商品應(yīng)付的金額。以數(shù)據(jù)備份為例:1>.添加一個(gè)folderBrowserDialog控件,顯示一個(gè)對(duì)話框,提示用戶選擇文件夾。以數(shù)據(jù)還原為例:1>.添加一個(gè)OpenFileDialog控件,顯示一個(gè)對(duì)話框,提示用戶打開(kāi)文件。第四章結(jié)論三個(gè)星期的時(shí)間非??炀瓦^(guò)去了,這三個(gè)星期我不敢說(shuō)有很大的進(jìn)步,但是還是了解了一些項(xiàng)目開(kāi)發(fā)的過(guò)程。以前沒(méi)有親身經(jīng)歷過(guò)相關(guān)的設(shè)計(jì)課程,這次提供了一個(gè)很好的機(jī)會(huì)。這次的課程設(shè)計(jì)可以說(shuō)是為畢業(yè)設(shè)計(jì)做的一個(gè)預(yù)演,真的做起來(lái)困難重重,深刻體會(huì)到做一個(gè)軟件,里面需要的很多知識(shí)我們沒(méi)有接觸過(guò),去圖書(shū)館找書(shū)的時(shí)候發(fā)現(xiàn),我們學(xué)的僅僅是皮毛,還有很多東西需要我們?nèi)グl(fā)掘,就算是借一本書(shū)看完它,我們還是會(huì)發(fā)現(xiàn)還有很多知識(shí)沒(méi)有吃透,這需要我們不斷的實(shí)踐,不斷地自學(xué)習(xí),不斷地發(fā)現(xiàn)問(wèn)題去思考問(wèn)題。
從需求分析階段,想充分了解自己所做的課題在客戶或者超市中的需求,由于《軟件工程》這門(mén)課大二時(shí)學(xué)的不深,畫(huà)數(shù)據(jù)流圖等等軟件設(shè)計(jì)流程做起來(lái)很生疏,翻閱課本,和軟件工程課老師上課的講解,總算整了一個(gè)像樣點(diǎn)的需求分析,但是也不知道是不是正確,根據(jù)數(shù)據(jù)流圖,不斷修改需求,由于這個(gè)課程設(shè)計(jì)沒(méi)有連接外部設(shè)備,比如打印機(jī),等,所以做的都是在實(shí)踐階段,根據(jù)設(shè)計(jì)的大概模式展開(kāi)一步步的模塊構(gòu)造。
經(jīng)過(guò)不斷地測(cè)試,不斷地改進(jìn),其中還是發(fā)下了不少問(wèn)題,第一次做這些工作,沒(méi)有任何經(jīng)驗(yàn),甚至無(wú)從下手,還是很謝謝老師和同學(xué)的幫忙,從中也學(xué)到了一些代碼的寫(xiě)法。我們學(xué)習(xí)并應(yīng)用了SQL語(yǔ)言,對(duì)數(shù)據(jù)庫(kù)的創(chuàng)建,刪除,修改有了一定的了解。通過(guò)導(dǎo)入表和刪除表,更改表學(xué)會(huì)了一些對(duì)表的操作。這次數(shù)據(jù)庫(kù)課程設(shè)計(jì)給我的最大的印象就是如果自己有了興趣,就動(dòng)手去做,困難在你的勇氣和毅力下是抬不了頭的。從做這個(gè)數(shù)據(jù)庫(kù)開(kāi)始無(wú)論遇到什么困難,我都沒(méi)有一絲的放棄的念頭。出于對(duì)知識(shí)的渴望,出于對(duì)新技術(shù)的好奇,出于對(duì)一切未知的求知。我完成了這次數(shù)據(jù)庫(kù)課程設(shè)計(jì),不過(guò)這只是我學(xué)習(xí)路上的驛站,未來(lái)十年.NET的核心技術(shù)就是XML我會(huì)繼續(xù)學(xué)習(xí)它,包括jave公司的j2ee我也很想試試,語(yǔ)言本來(lái)就是相通的,justdoit!語(yǔ)言并不重要畢竟它僅僅是工具,用好一個(gè)工具并不是一件值得為外人道的事情,主要是了解學(xué)習(xí)思想。古語(yǔ)說(shuō)的好:學(xué)無(wú)止境?。⒖嘉墨I(xiàn)錢(qián)雪忠《數(shù)據(jù)庫(kù)原理及應(yīng)用》北京:郵電大學(xué)出版社2007,8第二版
2.BainT《SQLserver2000數(shù)據(jù)倉(cāng)庫(kù)與AnalysisServices》中國(guó)電力出版社2003
3.王珊《數(shù)據(jù)庫(kù)技術(shù)與聯(lián)機(jī)分析處理》北京:科學(xué)出版社19984.肖遙《JSP的SQLServer數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)》2009
5.史志國(guó)《基于JSP的教務(wù)管理系統(tǒng)設(shè)計(jì)》2008
附錄(1)、員工信息表窗體frmEmpInfo的代碼:usingSystem;usingSystem.Collections.Generic;usingSystemxponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;usingShop.GoodMenthod;usingShop.ClassInfo;namespaceShop{publicpartialclassfrmEmpInfo:Form{publicfrmEmpInfo(){InitializeComponent();}tb_EmpInfoEmpClass=newtb_EmpInfo();tb_EmpInfoMenthodtbMenthod=newtb_EmpInfoMenthod();//窗體載入時(shí),將全部記錄載入到控件中privatevoidfrmEmpInfo_Load(objectsender,EventArgse){tbMenthod.tb_EmpInfoFind("",5,dataGridView1);this.cbxCondition.Text="員工姓名";//窗體載入時(shí)默認(rèn)的查詢條件索引}///<summary>///點(diǎn)擊查詢按鈕///</summary>privatevoidtxtOK_Click(objectsender,EventArgse){stringP_Str_selectcondition=this.cbxCondition.Text;//查詢類(lèi)別索引if(P_Str_selectcondition==null){MessageBox.Show("請(qǐng)選擇查詢條件!");return;}if(this.txtKeyWord.Text==""){MessageBox.Show("輸入查詢關(guān)鍵字!");return;}switch(P_Str_selectcondition){case"員工姓名"://員工姓名字段在dataGridView1索引值為1tbMenthod.tb_EmpInfoFind(txtKeyWord.Text,1,dataGridView1);break;case"員工性別"://員工性別字段在dataGridView1引值為2tbMenthod.tb_EmpInfoFind(txtKeyWord.Text,2,dataGridView1);break;case"所屬部門(mén)"://所屬部門(mén)字段在dataGridView1引值為3tbMenthod.tb_EmpInfoFind(txtKeyWord.Text,3,dataGridView1);break;case"員工職位"://員工職位字段在dataGridView1引值為4tbMenthod.tb_EmpInfoFind(txtKeyWord.Text,4,dataGridView1);break;default:break;}}publicstaticintintFlag=0;//控件方法狀態(tài)///<summary>///用于按鈕的互斥更改///</summary>privatevoidControlStatus(){this.toolSave.Enabled=!this.toolSave.Enabled;this.toolAdd.Enabled=!this.toolAdd.Enabled;this.toolCancel.Enabled=!this.toolCancel.Enabled;this.toolAmend.Enabled=!this.toolAmend.Enabled;this.toolDelete.Enabled=!this.toolDelete.Enabled;}///<summary>///用于初始化組件,將控件恢復(fù)到原始狀態(tài)///</summary>privatevoidClearControls(){txtEmpAddress.Text=null;txtEmpPhone.Text=null;txtEmpName.Text=null;txtEmpLoginPwd.Text=null;txtEmpPhoneM.Text=null;txtEmpLoginName.Text=null;cmbEmpPost.SelectedIndex=0;cmbEmpDept.SelectedIndex=0;comSex.SelectedIndex=0;this.daEmpBirthday.Value=DateTime.Now;}///<summary>///點(diǎn)擊添加按鈕///</summary>privatevoidtoolAdd_Click(objectsender,EventArgse){ControlStatus();//點(diǎn)擊添加按鈕后控件狀態(tài)相反ClearControls();//清空控件內(nèi)容intFlag=1;//添加標(biāo)記為1}///<summary>///點(diǎn)擊保存按鈕///</summary>privatevoidtoolSave_Click(objectsender,EventArgse){if(getPan()==1){if(intFlag==1){if(tbMenthod.tb_EmpInfoFind(txtEmpLoginName.Text,"",1)==1){MessageBox.Show("登錄名稱已被占用!!");txtEmpLoginName.Text="";txtEmpLoginName.Focus();return;}if(tbMenthod.tb_EmpInfoFind(txtEmpName.Text,"",1)==1){MessageBox.Show("員工姓名已被占用!!");txtEmpName.Text="";txtEmpName.Focus();return;}if(tbMenthod.tb_EmpInfoAdd(EmpClass)==1){MessageBox.Show("添加成功");intFlag=0;tbMenthod.tb_EmpInfoFind("",5,dataGridView1);ClearControls();ControlStatus();}else{MessageBox.Show("添加失敗");intFlag=0;//tbMenthod.tb_EmpInfoFind("2",dataGridView1);ClearControls();ControlStatus();}}if(intFlag==2){if(tbMenthod.tb_EmpInfoUpdate(EmpClass)==1){MessageBox.Show("修改成功");intFlag=0;tbMenthod.tb_EmpInfoFind("",5,dataGridView1);ClearControls();ControlStatus();}else{MessageBox.Show("修改失敗");intFlag=0;//tbMenthod.tb_EmpInfoFind("2",dataGridView1);ClearControls();ControlStatus();}}if(intFlag==3){if(tbMenthod.tb_EmpInfoDelete(EmpClass)==1){MessageBox.Show("刪除成功");intFlag=0;tbMenthod.tb_EmpInfoFind("",5,dataGridView1);ClearControls();ControlStatus();}else{MessageBox.Show("刪除失敗");intFlag=0;ClearControls();ControlStatus();}}}//end}///<summary>///用于判斷///</summary>///<returns></returns>publicintgetPan(){intintFlag1=0;if(intFlag!=3)//添加,修改狀態(tài){if(txtEmpName.Text==""){MessageBox.Show("員工姓名不能為空!","提示");txtEmpName.Focus();returnintFlag1;}if(txtEmpLoginName.Text==""){MessageBox.Show("登錄名稱不能為空!","提示");returnintFlag1;}if(intFlag!=2)//添加狀態(tài){if(txtEmpLoginPwd.Text==""){MessageBox.Show("登錄密碼不能為空!","提示");returnintFlag1;}}if(intFlag==2)//修改狀態(tài){EmpClass.EmpId1=this.dataGridView1[0,this.dataGridView1.CurrentCell.RowIndex].Value.ToString();//當(dāng)時(shí)單元格的行索引//this.dataGridView1[列索引=0,行索引]}else{EmpClass.EmpId1=tbMenthod.tb_EmpInfoID();}}else{if(txtEmpName.Text==""){MessageBox.Show("請(qǐng)?jiān)谙旅孢x擇要?jiǎng)h除的記錄","提示");returnintFlag1;}else{EmpClass.EmpId1=this.dataGridView1[0,this.dataGridView1.CurrentCell.RowIndex].Value.ToString();}}EmpClass.EmpName1=txtEmpName.Text;EmpClass.EmpLoginName1=txtEmpLoginName.Text;EmpClass.EmpLoginPwd1=txtEmpLoginPwd.Text;EmpClass.EmpSex1=comSex.Text;EmpClass.EmpBirthday1=daEmpBirthday.Value;EmpClass.EmpDept1=cmbEmpDept.Text;EmpClass.EmpPost1=cmbEmpPost.Text;EmpClass.EmpPhoneM1=txtEmpPhoneM.Text;EmpClass.EmpPhone1=txtEmpPhone.Text;EmpClass.EmpAddress1=txtEmpAddress.Text;if(intFlag!=3){EmpClass.EmpFlag1=0;}else{EmpClass.EmpFlag1=1;}intFlag1=1;returnintFlag1;}///<summary>///點(diǎn)擊取消按鈕///</summary>privatevoidtoolCancel_Click(objectsender,EventArgse){ControlStatus();ClearControls();}///<summary>///點(diǎn)擊退出按鈕///</summary>privatevoidtoolExit_Click(objectsender,EventArgse){this.Close();}privatevoidFillControls(){try{SqlDataReadersqldr=tbMenthod.tb_EmpInfoFind(this.dataGridView1[0,this.dataGridView1.CurrentCell.RowIndex].Value.ToString(),1);sqldr.Read();if(sqldr.HasRows){txtEmpLoginName.Text=sqldr[2].ToString();txtEmpName.Text=sqldr[1].ToString();comSex.Text=sqldr[4].ToString();daEmpBirthday.Value=Convert.ToDateTime(sqldr[5].ToString());cmbEmpDept.Text=sqldr[6].ToString();cmbEmpPost.Text=sqldr[7].ToString();txtEmpPhoneM.Text=sqldr[9].ToString();txtEmpPhone.Text=sqldr[8].ToString();txtEmpAddress.Text=sqldr[10].ToString();}}catch(Exceptionee){MessageBox.Show(ee.ToString());}}///<summary>///點(diǎn)擊修改按鈕///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidtoolAmend_Click_1(objectsender,EventArgse){ControlStatus();intFlag=2;}///<summary>///點(diǎn)擊刪除按鈕///</summary>privatevoidtoolDelete_Click_1(objectsender,EventArgse){ControlStatus();intFlag=3;}///<summary>///觸發(fā)dataGridView///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoiddataGridView1_CellClick(objectsender,DataGridViewCellEventArgse){if(intFlag==2||intFlag==3){FillControls();}}}}(2)、員工信息表方法tb_EmpInfoMenthod的代碼:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;usingShop.ClassInfo;namespaceShop.GoodMenthod{classtb_EmpInfoMenthod{SqlConnectionconn=null;SqlCommandcmd=null;SqlDataReaderqlddr=null;#region查詢tb_EmpInfo用于DataGridView單元格觸發(fā)時(shí)索引的數(shù)據(jù)中記錄返回publicSqlDataReadertb_EmpInfoFind(stringstrObject,intintFlag){//intintCount=0;stringstrSecar=null;try{switch(intFlag){case1:strSecar="select*fromtb_EmpInfowhereEmpId='"+strObject+"'andEmpFlag=0";break;case2:strSecar="select*fromtb_EmpInfowhereEmpFlag=0";break;}//strSecar="select*fromtb_EmpInfowhereEmpId='"+strObject+"'andEmpFlag=0";getSqlConnectiongetConnection=newgetSqlConnection();conn=getConnection.GetCon();cmd=newSqlCommand(strSecar,conn);qlddr=cmd.ExecuteReader();returnqlddr;}catch{returnqlddr;}}#endregion#region查詢(用于登陸驗(yàn)證)//添加功能驗(yàn)證登錄名publicinttb_EmpInfoFind(stringstrObject,stringpwd,intintFlag)//用戶名strObject傳參intFlag權(quán)限1查到用戶名即可;權(quán)限2用戶名密碼必須都對(duì){intintCount=0;stringstrSecar=null;try{switch(intFlag){case1:strSecar="select*fromtb_EmpInfowhereEmpLoginName='"+strObject+"'andEmpFlag=0";break;case2:strSecar="select*fromtb_EmpInfowhereEmpLoginName='"+strObject+"'andEmpFlag=0andEmpLoginPwd='"+pwd+"'";break;}getSqlConnectiongetConnection=newgetSqlConnection();conn=getConnection.GetCon();cmd=newSqlCommand(strSecar,conn);qlddr=cmd.ExecuteReader();qlddr.Read();if(qlddr.HasRows){intCount=1;}returnintCount;}catch(Exceptionex){MessageBox.Show(ex.Message.ToString());returnintCount=2;}}#endregion#region查詢(窗體載入時(shí))publicvoidtb_EmpInfoFind(stringst,intflag,ObjectDataObject){stringstrSecar=null;try{switch(flag){case1:strSecar="select*fromtb_EmpInfowhereEmpNamelike'%"+st+"%'andEmpFlag=0";break;case2:strSecar="select*fromtb_EmpInfowhereEmpSex='"+st+"'andEmpFlag=0";break;case3:strSecar="select*fromtb_EmpInfowhereEmpDeptlike'%"+st+"%'andEmpFlag=0";break;case4:strSecar="select*fromtb_EmpInfowhereEmpPostlike'%"+st+"%'andEmpFlag=0";break;case5:strSecar="select*fromtb_EmpInfowhereEmpFlag=0";break;}//strSecar="select*fromtb_EmpInfowhereEmpFlag=0";//窗體載入時(shí)將相關(guān)記錄全部載入到控件中g(shù)etSqlConnectiongetConnection=newgetSqlConnection();conn=getConnection.GetCon();cmd=newSqlCommand(strSecar,conn);intii=0;//統(tǒng)計(jì)讀取的記錄數(shù)量qlddr=cmd.ExecuteReader();//讀取符合條件的數(shù)據(jù)二維表while(qlddr.Read())//記錄前進(jìn){ii++;}qlddr.Close();//關(guān)閉qlddr的Reader對(duì)象,以便再執(zhí)行從第一條開(kāi)始讀,由于未釋放所以不用再連接System.Windows.Forms.DataGridViewdv=(DataGridView)DataObject;//向自定義的表格中顯示數(shù)據(jù),//動(dòng)態(tài)的數(shù)據(jù)表格,數(shù)據(jù)表格的引用方式dv【列索引,行索引】if(ii!=0){inti=0;//當(dāng)讀取到一條以上的記錄時(shí)dv.RowCount=ii;//自定義表格的記錄長(zhǎng)度qlddr=cmd.ExecuteReader();//執(zhí)行讀取操作while(qlddr.Read())//讀取表格的每一條記錄前進(jìn){//第一次循環(huán)將讀取到的二維表中索引行為0的列記錄寫(xiě)入到活動(dòng)數(shù)據(jù)表格中的第0行dv[0,i].Value=qlddr[0].ToString();dv[1,i].Value=qlddr[1].ToString();dv[2,i].Value=qlddr[4].ToString();dv[3,i].Value=qlddr[6].ToString();dv[4,i].Value=qlddr[7].ToString();dv[5,i].Value=qlddr[9].ToString();i++;//i為行索引}qlddr.Close();//再次關(guān)閉qlddr的Reader對(duì)象}else{for(inti=0;i<dv.RowCount;i++){dv[0,i].Value="";dv[1,i].Value="";dv[2,i].Value="";dv[3,i].Value="";dv[4,i].Value="";dv[5,i].Value="";}}}catch(Exceptionee){MessageBox.Show(ee.ToString());}}#endregion#region添加publicinttb_EmpInfoAdd(tb_EmpInfoEmpinfo){intintFlag=0;try{stringstr_Add="insertintotb_EmpInfovalues(";str_Add+="'"+Empinfo.EmpId1+"','"+Empinfo.EmpName1+"','"+Empinfo.EmpLoginName1+"',";str_Add+="'"+Empinfo.EmpLoginPwd1+"','"+Empinfo.EmpSex1+"','"+Empinfo.EmpBirthday1+"',";str_Add+="'"+Empinfo.EmpDept1+"','"+Empinfo.EmpPost1+"','"+Empinfo.EmpPhone1+"',";str_Add+="'"+Empinfo.EmpPhoneM1+"','"+Empinfo.EmpAddress1+"',";str_Add+="'"+Empinfo.EmpFlag1+"')";getSqlConnectiongetConnection=newgetSqlConnection();conn=getConnection.GetCon();cmd=newSqlCommand(str_Add,conn);intFlag=cmd.ExecuteNonQuery();//返回受影響的行數(shù)conn.Dispose();returnintFlag;}catch(Exceptionee){MessageBox.Show(ee.ToString());
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 老師的崗前培訓(xùn)方案(11篇)
- 2024年抹灰施工專(zhuān)業(yè)分包合同
- 超市收銀員的個(gè)人年終工作總結(jié)(33篇)
- 采購(gòu)主管的個(gè)人年度工作總結(jié)范文(28篇)
- 科技筑強(qiáng)國(guó)夢(mèng)演講稿5篇
- DB4114T 116-2019 商芝1306芝麻生產(chǎn)技術(shù)規(guī)程
- DB4113T 062-2024 水稻施肥技術(shù)規(guī)程
- 二手房合同模板5篇
- DB4106T 31-2020 三葉香生產(chǎn)技術(shù)規(guī)程
- 2024年小學(xué)生班干部競(jìng)選演講稿(19篇)
- 迷你臨床演練評(píng)量MiniCEX于英
- 2024版《隱患排查標(biāo)準(zhǔn)手冊(cè)》(附檢查依據(jù))
- DB11/1950-2021-公共建筑無(wú)障礙設(shè)計(jì)標(biāo)準(zhǔn)
- 鍍鋅線專(zhuān)業(yè)詞匯表
- 股權(quán)代持股東會(huì)決議
- 第17課 盼 六年級(jí)語(yǔ)文上冊(cè)同步分層作業(yè)設(shè)計(jì)系列(統(tǒng)編版)
- 文化旅游安全培訓(xùn)
- 數(shù)字技術(shù)在幼兒科學(xué)教育中的應(yīng)用與實(shí)踐
- 初中物理光學(xué)難題難度含解析答案
- 2024年中國(guó)民航科學(xué)技術(shù)研究院社會(huì)招聘工作人員16人歷年高頻考題難、易錯(cuò)點(diǎn)模擬試題(共500題)附帶答案詳解
- 公平競(jìng)爭(zhēng)審查制度實(shí)施細(xì)則
評(píng)論
0/150
提交評(píng)論