版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、32/32黎明職業(yè)大學(xué)計算機與信息工程系信息系統(tǒng)開發(fā)實訓(xùn)實訓(xùn)指導(dǎo)書2011年11月目 錄 TOC o 1-1” h z u HYPERLINK l _Toc309657249 信息系統(tǒng)開發(fā)實訓(xùn)實訓(xùn)大綱 PAGEREF _Toc309657249 h 3 HYPERLINK l _Toc309657250 附件一:實訓(xùn)日志模板 PAGEREF _Toc309657250 h 6 HYPERLINK l ”_Toc309657251” 附件二:實訓(xùn)報告模板 PAGEREF _Toc309657251 h 7 HYPERLINK l ”_Toc309657252” 附錄三:本項目的評分標(biāo)準(zhǔn): PAG
2、EREF _Toc309657252 h 9 HYPERLINK l _Toc309657253 實訓(xùn)一 實訓(xùn)項目的選題與功能需求分析 PAGEREF _Toc309657253 h 10 HYPERLINK l _Toc309657254 實訓(xùn)二 數(shù)據(jù)庫設(shè)計 PAGEREF _Toc309657254 h 12 HYPERLINK l ”_Toc309657255” 實訓(xùn)三 公共數(shù)據(jù)處理類的創(chuàng)建 PAGEREF _Toc309657255 h 15 HYPERLINK l _Toc309657256 實訓(xùn)四 登錄窗體與主界面 PAGEREF _Toc309657256 h 17 HYPERL
3、INK l ”_Toc309657257 實訓(xùn)五 處理數(shù)據(jù) PAGEREF _Toc309657257 h 18 HYPERLINK l _Toc309657258” 實訓(xùn)六 維護(hù)數(shù)據(jù) PAGEREF _Toc309657258 h 22 HYPERLINK l _Toc309657259” *實訓(xùn)七 幫助文檔的制作與C#的調(diào)用 PAGEREF _Toc309657259 h 25 HYPERLINK l ”_Toc309657260 實訓(xùn)三 公共數(shù)據(jù)處理類的創(chuàng)建(數(shù)據(jù)訪問層) PAGEREF _Toc309657260 h 27 HYPERLINK l _Toc309657261” 實訓(xùn)四
4、業(yè)務(wù)邏輯層的實現(xiàn) PAGEREF _Toc309657261 h 30 HYPERLINK l _Toc309657262” 實訓(xùn)五 表示層的實現(xiàn)(界面設(shè)計) PAGEREF _Toc309657262 h 33 HYPERLINK l ”_Toc309657263 實訓(xùn)六 數(shù)據(jù)報表、統(tǒng)計與維護(hù) PAGEREF _Toc309657263 h 34信息系統(tǒng)開發(fā)實訓(xùn)實訓(xùn)大綱適用:計算機信息管理學(xué)時:60 學(xué)分2一、實訓(xùn)目的:信息系統(tǒng)開發(fā)實訓(xùn)是計算機網(wǎng)絡(luò)技術(shù)的重要實踐環(huán)節(jié).通過實訓(xùn)使學(xué)生能夠更進(jìn)一步的領(lǐng)會管理信息系統(tǒng)分析、設(shè)計與實現(xiàn)的基本知識,了解程序開發(fā)的一般過程,熟悉和掌握程序開發(fā)的基本流程和
5、注意事項,培養(yǎng)學(xué)生綜合運用所學(xué)知識分析和解決實際問題的能力,提高學(xué)生的綜合設(shè)計和實踐能力,為今后開發(fā)程序打下基礎(chǔ)。二、實訓(xùn)內(nèi)容和要求(一)實訓(xùn)內(nèi)容1、用戶需求分析 根據(jù)所選題目進(jìn)行認(rèn)真地需求分析,用戶需求分析的信息包括: 信息需求,用戶要從數(shù)據(jù)庫獲得的信息內(nèi)容。信息需求定義了新系統(tǒng)應(yīng)該提供的所有信息;應(yīng)描述清楚系統(tǒng)中數(shù)據(jù)的性質(zhì)及其聯(lián)系. 處理需求,即完成什么處理功能及處理的方式。處理需求定義了新系統(tǒng)數(shù)據(jù)處理的操作;應(yīng)描述操作執(zhí)行的場合、操作對數(shù)據(jù)的影響等等. 安全性和完整性要求。在定義信息需求和處理需求的同時必須相應(yīng)確定安全性、完整性.2、數(shù)據(jù)庫結(jié)構(gòu)的確定 、根據(jù)項目要求設(shè)計ER圖、根據(jù)ER圖
6、設(shè)計數(shù)據(jù)庫的關(guān)系模式、進(jìn)行規(guī)范化處理后給出各關(guān)系之間的關(guān)聯(lián)關(guān)系、能根據(jù)功能合理設(shè)計視圖、存儲過程與觸發(fā)器、在DBMS(如SQL Server 2005)中建立數(shù)據(jù)庫,并產(chǎn)生SQL腳本;3、系統(tǒng)總體方案設(shè)計 、畫出詳細(xì)的總體框圖 、說明各模塊的功能、建立某種形式的報表,實現(xiàn)對數(shù)據(jù)的統(tǒng)計與輸出;4、程序設(shè)計部分 按總體方案設(shè)計與業(yè)務(wù)邏輯要求進(jìn)行應(yīng)用系統(tǒng)開發(fā)。要求: 程序能正確運行用戶界面友好程序功能完善程序可進(jìn)行權(quán)限控制方便用戶使用 *5、對于C/S應(yīng)用系統(tǒng):應(yīng)能夠生成應(yīng)用程序和可執(zhí)行文件,并在相應(yīng)環(huán)境下正確運行;最終要求系統(tǒng)調(diào)試并打包成為最終軟件可安裝運行。B/S系統(tǒng):應(yīng)能正確配置站點提供服務(wù).
7、(二)實訓(xùn)總體要求1、實訓(xùn)以小組的形式進(jìn)行,自由分組,每個小組不得多于4人。各小組在實訓(xùn)進(jìn)行之前上報組長、成員及項目名稱。2. 每個小組要根據(jù)實際開發(fā)內(nèi)容進(jìn)一步明確任務(wù),小組組長負(fù)責(zé)工作安排,保證每個同學(xué)積極參與到項目開發(fā)過程。要有計劃地定時定量地完成任務(wù),體現(xiàn)出團(tuán)隊精神。3。 認(rèn)真填寫實訓(xùn)日志。4。 在開發(fā)各環(huán)節(jié)中撰寫相關(guān)的技術(shù)文檔,最后以小組為單位上交實訓(xùn)報告和源程序清單(以附錄形式),正文字?jǐn)?shù)不少于2000字(不包括附錄),要求層次清楚、整潔規(guī)范、不得相互抄襲,凡正文內(nèi)容有整段相同者一律以作弊論處.5. 最后遞交一個可以運行的系統(tǒng)。6。 明確實訓(xùn)的目的和重要性,認(rèn)真領(lǐng)會實訓(xùn)的題目,讀懂實
8、訓(xùn)指導(dǎo)書的要求,學(xué)會設(shè)計的基本方法與步驟,積極認(rèn)真地做好準(zhǔn)備工作。7。 實訓(xùn)中,學(xué)會如何運用前修知識與收集、歸納相關(guān)資料解決具體問題的方法.三、先修課程信息系統(tǒng)分析與設(shè)計數(shù)據(jù)庫原理與應(yīng)用ASP。NET網(wǎng)站建設(shè)C程序設(shè)計四教學(xué)時間參考分配表序號實訓(xùn)內(nèi)容學(xué)時分配總學(xué)時理論學(xué)時實踐學(xué)時1選題、需求分析、系統(tǒng)設(shè)計結(jié)合在系統(tǒng)分析與設(shè)計課內(nèi)完成2ADO.net核心對象介紹4223ADO。NET調(diào)用帶參數(shù)的SQL語句或存儲過程6334數(shù)據(jù)庫設(shè)計122105公共數(shù)據(jù)處理模塊6156登錄窗體與主界面/首頁實現(xiàn)6247具體功能模塊的實現(xiàn)與測試14148系統(tǒng)測試、填寫實訓(xùn)報告669總結(jié)與答辯66合計601644五考
9、核辦法由指導(dǎo)教師根據(jù)學(xué)生完成實訓(xùn)任務(wù)的情況(實訓(xùn)報告的質(zhì)量10,答辯情況10,實訓(xùn)過程中的工作態(tài)度20%,系統(tǒng)開發(fā)情況60%)綜合打分。成績評定實行優(yōu)秀、良好、中等、及格和不及格五個等級。優(yōu)秀者人數(shù)一般不超過總?cè)藬?shù)的20%。其中工作態(tài)度考核內(nèi)容包括:是否按進(jìn)度要求完成實訓(xùn)科目;是否認(rèn)真填寫實訓(xùn)日記;是否能與教師、同學(xué)較好溝通過等.六、參考文獻(xiàn)1數(shù)據(jù)庫系統(tǒng)概論王珊,薩師煊編著 高等教育出版社 2管理信息系統(tǒng)開發(fā)技術(shù) 寧書林等編著 北京理工大學(xué)出版社 3ASP。NET 2.O數(shù)據(jù)庫開發(fā)實例精粹 郭瑞軍等編著 電子工業(yè)出版社 4Visual C 2008數(shù)據(jù)庫編程實訓(xùn)教程 李志中編著 清華大學(xué)出版社
10、附件:1實訓(xùn)日志模板2課程實訓(xùn)報告模板3評分標(biāo)準(zhǔn)附件一:實訓(xùn)日志模板實 訓(xùn) 日 志實訓(xùn)日期實訓(xùn)地點實訓(xùn)題目實訓(xùn)目的實訓(xùn)環(huán)境實訓(xùn)內(nèi)容及步驟體會與建議教師評語附件二:實訓(xùn)報告模板黎明職業(yè)大學(xué)課程實訓(xùn)報告 題目: (項目名稱) 系 別: 計算機與信息工程系 專 業(yè): 計算機信息管理 年 級: 2009 學(xué) 號: 姓 名: 任課教師: 填寫日期 2011 年 月 日摘 要關(guān)鍵字正文 (本部份另取一頁開始)1、正文內(nèi)容:完成作業(yè)的計算機環(huán)境(軟硬件配置)硬件、軟件:項目名稱:(1)綜述:項目提出及要解決的問題,設(shè)計思想;(2)項目要實現(xiàn)的主要功能概要說明完成該項目各組成部分的名稱及其主要功能.及各部分之
11、間的關(guān)系;(3)數(shù)據(jù)庫設(shè)計的ER圖,數(shù)據(jù)庫、表的結(jié)構(gòu)(4)實現(xiàn)功能的展示該項目使用說明:輸入操作、各功能使用、輸出操作的提示.(5)測試中發(fā)現(xiàn)的問題(6)課程設(shè)計的心得體會(7)參考書目2、格式(1)文檔版式:A4,頁邊距:上下為2CM、左右為3CM(2)字體:宋體 五號字(3)1。5倍行距附錄三:本項目的評分標(biāo)準(zhǔn):系統(tǒng)開發(fā)實訓(xùn)評分標(biāo)準(zhǔn)及評分表項 目評 分 細(xì) 則 及 標(biāo) 準(zhǔn)得分用戶需求分析進(jìn)行了詳細(xì)的用戶信息需求和處理需求分析(3分)對用戶的安全性和完整性要求進(jìn)行了詳細(xì)的分析(2分)數(shù)據(jù)庫模式的設(shè)計數(shù)據(jù)庫模式的設(shè)計能滿足用戶的信息需求(5分)數(shù)據(jù)庫的完整性數(shù)據(jù)庫模式考慮了數(shù)據(jù)庫的實體完整性、
12、域完整性和關(guān)聯(lián)完整性控制;能正確地進(jìn)行數(shù)據(jù)記錄的錄入、更新和刪除(5分)數(shù)據(jù)庫的查詢可進(jìn)行指定數(shù)據(jù)庫的簡單查詢(5分)可進(jìn)行多庫之間的連接查詢(5分)數(shù)據(jù)庫的統(tǒng)計能按用戶的要求進(jìn)行各種數(shù)據(jù)的統(tǒng)計及打印出統(tǒng)計報表(5分)數(shù)據(jù)庫編程能合理使用視圖、存儲過程和觸發(fā)器(5分)應(yīng)用軟件的功能模塊程序能正確運行、可進(jìn)行權(quán)限控制(5分)應(yīng)用軟件的功能合理、完善,達(dá)到用戶的處理需求(5分)應(yīng)用軟件的界面合理友好、用戶操作方便(5分)錯誤處理具有一定的容錯性,當(dāng)系統(tǒng)出錯時,能自己處理而不是交給系統(tǒng)(5分)軟件的打包與安裝應(yīng)用軟件能夠正確的打包和安裝,并能脫離開發(fā)平臺正確運行(5分)講解與回答問題對應(yīng)用軟件的設(shè)計
13、思路做總體描述,要求思路清楚,敘述流暢;軟件操作熟練;能正確回答老師的提問。(10分)工作量完成基本工作量可得5分,多或少可酌情增減分,最高加到10分。設(shè)計說明書設(shè)計文檔按要求,格式規(guī)范、內(nèi)容完整、正確,可得(10分)項目參與課程設(shè)計期間滿勤(無遲到、早退、曠課)得(10分);遲到、早退一次扣1分,曠課一次扣2分,扣完10分止實訓(xùn)一 實訓(xùn)項目的選題與功能需求分析一.實訓(xùn)項目選題 選擇一個進(jìn)銷存管理系統(tǒng)作為本次實訓(xùn)的題目。如果對于進(jìn)銷存管理系統(tǒng)的業(yè)務(wù)流程不是十分清楚,也根據(jù)自已熟悉的領(lǐng)域,選擇一個合適的信息管理系統(tǒng)作為本次實訓(xùn)的題目.二。功能需求分析進(jìn)銷存系統(tǒng)常見的功能性需求分類功能類別功能名稱
14、、標(biāo)識符描述用戶登錄用戶登錄對用戶輸入的用戶名,密碼進(jìn)行驗證,驗證通過后,該用戶可以使用PSS系統(tǒng)中自己擁有權(quán)限的那部分功能,否則拒絕使用.維護(hù)基本資料銷售員資料維護(hù)用戶修改,刪除,新增或查詢銷售員數(shù)據(jù),系統(tǒng)根據(jù)用戶的操作,對銷售員資料進(jìn)行更新或顯示。商品資料維護(hù)用戶修改,刪除,新增或查詢商品數(shù)據(jù),系統(tǒng)根據(jù)用戶的操作,對商品資料進(jìn)行更新或顯示。客戶資料維護(hù)用戶修改,刪除,新增或查詢客戶數(shù)據(jù)(其中包括對客戶的聯(lián)系人的修改,刪除,新增與查詢以及對客戶交易記錄的查詢),系統(tǒng)根據(jù)用戶的操作,對商品資料進(jìn)行更新或顯示.供應(yīng)商資料維護(hù)用戶修改,刪除,新增或查詢供應(yīng)商數(shù)據(jù)(其中包括對供應(yīng)商的聯(lián)系人的修改,刪
15、除,新增與查詢以及對供應(yīng)商交易記錄的查詢),系統(tǒng)根據(jù)用戶的操作,對供應(yīng)商資料進(jìn)行更新或顯示.采購采購入庫用戶通過錄入采購入庫單增加采購的貨物,并可對采購入庫單及其單據(jù)中的貨物明細(xì)進(jìn)行修改、刪除與查詢.采購?fù)素浻脩翡浫胪ㄟ^采購?fù)素泦瓮嘶刎浳?,并可對采購?fù)素泦渭捌鋯螕?jù)中的貨物明細(xì)進(jìn)行修改、刪除與查詢。銷售銷售出庫用戶通過錄入銷售出庫單記錄銷售的貨物,并可對銷售出庫單及其單據(jù)中的貨物明細(xì)進(jìn)行修改、刪除與查詢。銷售退貨用戶通過錄入銷售退貨單退回已銷售貨物,并可對銷售退貨單及其單據(jù)中的貨物明細(xì)進(jìn)行修改、刪除與查詢.庫存庫存查詢用戶通過組合不同條件,對庫存進(jìn)行查詢、盤點.維護(hù)系統(tǒng)維護(hù)用戶資料擁有系統(tǒng)維護(hù)權(quán)
16、限的用戶可以增加新用戶,并可以對用戶的資料進(jìn)行修改、刪除以及查詢.管理用戶權(quán)限擁有權(quán)限管理的用戶可以設(shè)定其他用戶對軟件的訪問權(quán)限。修改密碼用戶重新設(shè)定自己的密碼報表導(dǎo)出導(dǎo)出庫存預(yù)警庫存量低于安全存量的商品系統(tǒng)向用戶提供警示信息,以提醒用戶及時進(jìn)貨.用戶也可將警示信息導(dǎo)出到Excel中.導(dǎo)出商品資料將商品資料信息導(dǎo)出到Excel中。導(dǎo)出采購報表按日期或用戶定義的匯總方式對采購信息進(jìn)行匯總,并將匯總結(jié)果導(dǎo)出到Excel中。導(dǎo)出年采購報表根據(jù)年度匯總采購支出金額,并按月分將其導(dǎo)出在Excel中。根據(jù)所選擇的系統(tǒng)仔細(xì)分析系統(tǒng)的功能,然后畫出系統(tǒng)的模塊功能結(jié)構(gòu)圖畫出系統(tǒng)的數(shù)據(jù)流程圖或用例圖實訓(xùn)二 數(shù)據(jù)庫
17、設(shè)計數(shù)據(jù)庫設(shè)計是本實訓(xùn)的基礎(chǔ),只有在需求分析的基礎(chǔ)上合理設(shè)計所需的數(shù)據(jù)庫,才有可能完成本實訓(xùn)。關(guān)于數(shù)據(jù)庫的設(shè)計可分為以下幾個步驟:畫出ER畫、ER圖轉(zhuǎn)化成關(guān)系模型、創(chuàng)建數(shù)據(jù)庫、實現(xiàn)完整性約束與一致性約束、創(chuàng)建索引與視圖、創(chuàng)建觸發(fā)器、創(chuàng)建存儲過程,最后編寫相應(yīng)的文檔。步驟一、畫ER圖為了減輕學(xué)生的負(fù)擔(dān),本實訓(xùn)給定了一個中文版的NorthWind數(shù)據(jù)庫(是SQLserver附帶的比較完善的進(jìn)銷存數(shù)據(jù)庫),學(xué)生可以在分析此數(shù)據(jù)庫特征的基礎(chǔ)上,畫出自己所選系統(tǒng)的數(shù)據(jù)庫的ER圖,NorthWind的數(shù)據(jù)庫關(guān)系圖如下所示:圖2 NorthWind數(shù)據(jù)庫關(guān)系圖注:以上圖形是數(shù)據(jù)庫關(guān)系圖而不是ER圖,請同學(xué)按
18、照上學(xué)期實訓(xùn)所學(xué)的Visio軟件,建立ER圖.步驟二、創(chuàng)建數(shù)據(jù)庫根據(jù)每位同學(xué)所畫的ER圖,創(chuàng)建數(shù)據(jù)庫,同時確定每一張表的主鍵;步驟三、實現(xiàn)完整性約束與一致性約束完整性:根據(jù)ER圖,建立表間的主從關(guān)系,以實現(xiàn)數(shù)據(jù)庫的完整性;SQLservernorthwind新建數(shù)據(jù)庫關(guān)系圖添加表從主表拖動主鍵到從表出現(xiàn)下圖對話框選擇相應(yīng)的鍵確定(圖2所示)圖3一致性:在SQLserver中實現(xiàn)表間的級聯(lián)刪除、級聯(lián)更新關(guān)系;圖2按“確定”后,出現(xiàn)圖3的對話框,把“更新規(guī)則”和“刪除規(guī)則”均設(shè)為“層疊即可保證數(shù)據(jù)庫的一致性。圖4步驟四、創(chuàng)建索引與視圖 創(chuàng)建索引與視圖可以提高查詢速度(本步驟可有可無)步驟五、創(chuàng)建觸
19、發(fā)器(本步驟可有可無,視具體系統(tǒng)而定)步驟六、創(chuàng)建存儲過程如創(chuàng)建“增加產(chǎn)品”的存儲過程的代碼如下:Create Procedure InsertChanPinDataP_name NVarChar(40),G_ID int,L_ID int,P_DanWeiShuLiang NVarChar(20),P_danjia money,P_KuCun smallint,P_DingGou smallint,P_ZaiDing smallint,P_zhongZhi bitASInsert Into 產(chǎn)品 Values(P_name,G_ID,L_ID,P_DanWeiShuLiang, P_danj
20、ia,P_KuCun,P_DingGou,P_ZaiDing,P_zhongZhi)RETURN rowcount上篇 C/S應(yīng)用程序開發(fā)實訓(xùn)三 公共數(shù)據(jù)處理類的創(chuàng)建一、定義數(shù)據(jù)庫連接SqlConnection luocon = new SqlConnection(”Data Source=.;Initial Catalog=JWInfo;Integrated Security=True”);二、數(shù)據(jù)處理公共類所包含的常用的方法:執(zhí)行select 查詢語句的方法,返回數(shù)據(jù)集 public DataSet gettabledata(string strsql) SqlDataAdapter da
21、 = new SqlDataAdapter(strsql , luocon ); DataSet ds = new DataSet(); da。Fill(ds); return ds; 執(zhí)行帶參數(shù)數(shù)組的存儲過程的方法 public int Exec_sql(string strsql, SqlParameter paras) luocon。Open(); SqlCommand cmd = new SqlCommand(strsql, luocon); cmd.CommandType = CommandType。StoredProcedure; if (paras != null) foreac
22、h (SqlParameter P in paras) cmd.Parameters。Add(P); return cmd。ExecuteNonQuery(); luocon.Close(); 執(zhí)行不帶參數(shù) 增加、刪除、修改、建表的SQL語句的方法 public int Exec_sql(string strsql) luocon。Close(); luocon.Open(); SqlCommand cmd = new SqlCommand(strsql, luocon); return cmd.ExecuteNonQuery(); luocon。Close(); 執(zhí)行帶統(tǒng)計功能的SQL語句的
23、方法 public int Exec_Scalar(string strsql) luocon.Close(); luocon。Open(); SqlCommand cmd = new SqlCommand(strsql, luocon); return Convert 。ToInt32(cmd.ExecuteScalar()。ToString(); luocon.Close(); 執(zhí)行存儲過程,返回SqlCommand的方法private SqlCommand CreateCommand(string ProcName, SqlParameter Prams) Open(); SqlComm
24、and Cmd = new SqlCommand(ProcName, Connection); Cmd.CommandType = CommandType。StoredProcedure; if (Prams != null) foreach (SqlParameter Parameter in Prams) Cmd。Parameters。Add(Parameter); return Cmd; 實訓(xùn)四 登錄窗體與主界面1。windows桌面應(yīng)用程序的常見登錄窗體及其代碼圖4“確定”按鈕的基本代碼:private void OK_Click(object sender, EventArgs e)
25、 if (username。Text =”) MessageBox。Show(”用戶名不能為空”); else if (password。Text = ”) MessageBox.Show(”密碼不能為空); else DataSet ds = new DataSet(); ds = mydb。gettabledata(select * from 用戶 where 用戶名=” + username。Text + ” and 密碼= + password.Text + ”); if (ds.Tables0。Rows。Count = 0) MessageBox.Show(用戶名或密碼不正確”);
26、else FrmMain FM = new FrmMain(); FM。Show(); this.Hide(); 思考以下問題:如果想實現(xiàn)驗證碼,如何做?如果用戶有超級用戶與普通用戶之分,兩者能訪問的模塊有所區(qū)別,則如何處理?每位同學(xué)對主界面的設(shè)計不可能一樣,請大家自已設(shè)計實訓(xùn)五 處理數(shù)據(jù)一。 基本信息維護(hù)常見的基本信息處理的界面如及功能如下圖2所示,本實訓(xùn)指導(dǎo)書中給出了對于“產(chǎn)品”表進(jìn)行增、刪、改、查詢等基本功能的代碼,在實訓(xùn)過程中,同學(xué)可以根據(jù)自己所選擇的題目適當(dāng)調(diào)整功能。圖51。查詢處理加載查詢依據(jù)(表字段)要實現(xiàn)查詢功能,一般在Form一加載時即把表的字段名加載到Combobox中,用
27、戶可以選擇任何一個字段作為查詢依據(jù),所以首先要實現(xiàn)加載字段名的問題,常見的代碼如下:DataSet ds = new DataSet(); ds = mydb。gettabledata(SELECT name FROM sys.syscolumns WHERE (id = OBJECT_ID(產(chǎn)品) ); for (int i = 0; i ds。Tables0。Rows.Count - 1; i+) ComboBox1。Items.Add(ds.Tables0.Rowsi0。ToString()); DataSet ds1 = new DataSet(); ds1 = mydb。gettab
28、ledata(select from 產(chǎn)品); dataGridView1 .DataSource = ds1.Tables 0;實現(xiàn)查詢功能參考代碼如下:DataSet ds2 = new DataSet(); ds2 = mydb.gettabledata(”select from 產(chǎn)品 where + ComboBox1.Text + like % + TextBox1 。Text +”); dataGridView1。DataSource = null ; dataGridView1 。DataSource =ds2。Tables 0;其中:mydb是數(shù)據(jù)處理類的對象,gettable
29、data是數(shù)據(jù)處理類中的自定義方法(見實訓(xùn)三的2。)。2。刪除處理刪除時一般先選擇DataGridView的某一行或某幾行,然后刪除。刪除的原理是先把物理表的字段加載到一個數(shù)據(jù)集DS中,然后根據(jù)用戶選定的DataGridView行號或關(guān)鍵字段的值,刪除數(shù)據(jù)集的某一行或某些行,然后把數(shù)據(jù)集回寫到數(shù)據(jù)表中。 刪除常見的有兩種方法:一是使用DataSet和SqlDataAdapter實現(xiàn)刪除功能;二是直接使用SQL語句或存儲過程實現(xiàn)刪除功能。使用DataSet和SqlDataAdapter實現(xiàn)刪除功能的通用代碼如下:try SqlDataAdapter da = new SqlDataAdapter
30、(”select from 學(xué)生信息”, mydb.luocon); DataSet ds = new DataSet(); SqlCommandBuilder cb = new SqlCommandBuilder(da); da。Fill(ds); if (MessageBox。Show(”真的要刪除嗎?, 提示, MessageBoxButtons。OKCancel) = DialogResult.OK) for (int i = 0; i ds。Tables0.Rows。Count; i+) if (dataGridView1.Rowsi。Selected = true) ds。Tabl
31、es0.Rowsi。Delete(); MessageBox。Show(”刪除成功”); da.Update(ds); dataGridView1。DataSource = ds。Tables0; catch MessageBox.Show(刪除失敗”); 直接使用SQL語句或存儲過程實現(xiàn)刪除功能try for (int i = 0; i dataGridView1.Rows。Count 1; i+) if (dataGridView1.Rowsi.Selected = true) int ChanPinID = Int32。Parse(dataGridView1。Rowsi。Cells0);
32、 int m = tdb.Exec_str(delete from 產(chǎn)品 where 產(chǎn)品ID= + ChanPinID); MessageBox。Show(”刪除成功”); catch MessageBox.Show(”刪除失敗); 3.增加記錄增加記錄的常見有兩種方法,一是使用DataSet和SqlDataAdapter實現(xiàn)刪除功能;二是直接使用SQL語句或存儲過程實現(xiàn)刪除功能。使用DataSet和SqlDataAdapter實現(xiàn)增加功能,該方法的原理與刪除操作十分類似,先是加載數(shù)據(jù)集,然后向數(shù)據(jù)集增加一條記錄,最后回寫到物理表中,參考代碼如下:SqlDataAdapter da = ne
33、w SqlDataAdapter(select from 產(chǎn)品”, tdb 。luocon ); SqlCommandBuilder cb = new SqlCommandBuilder(da); DataSet ds= new DataSet(); da。Fill (ds); DataRow dr = ds。Tables0。NewRow(); dr0 = 產(chǎn)品名稱TextBox.Text; dr1 = 供應(yīng)商IDTextBox。Text; 。.。. try ds。Tables0。Rows.Add(dr); da.Update(ds); MessageBox.Show(添加成功”); catc
34、h MessageBox.Show(”添加失敗”); 使用存儲過程實現(xiàn)刪除功能,此方法必須先創(chuàng)建刪除的存儲過程,接著編寫能夠執(zhí)行刪除操作的方法(可使用實訓(xùn)三的),最后調(diào)用該方法來執(zhí)行存儲過程。參考代碼如下:SqlParameter mypara = new SqlParameter9; mypara0 = new SqlParameter(”Number”, SqlDbType.NVarChar, 4); mypara1 = new SqlParameter(Name”, SqlDbType。NVarChar, 40); mypara0.Value = 產(chǎn)品IDTextBox.Text; my
35、para1。Value = 產(chǎn)品名稱TextBox.Text; int k= Sdb。Exec_pro(”add_product, mypara ); if (k = 0) MessageBox.Show(”添加失敗”); else MessageBox。Show(添加了一條記錄);實訓(xùn)六 維護(hù)數(shù)據(jù)維護(hù)數(shù)據(jù)的操作一般包含數(shù)據(jù)的導(dǎo)入、導(dǎo)出、數(shù)據(jù)備份、數(shù)據(jù)還原等功能。1. 從SQL表導(dǎo)出到Excel表try int row , col ; bool IsOnlyVisible= true ; Excel .Application myexcel= new Excel。Application ();
36、 myexcel 。Application 。Workbooks.Add (true ); col = 1; for (int n=0; ndataGridView1 .ColumnCount 1; n+) if (IsOnlyVisible ) if (dataGridView1 。Columnsn.Visible ) myexcel .Cells 1,col = dataGridView1 .Columnsn。HeaderText ; col = col+1; else myexcel .Cells 1, n+1= dataGridView1 .Columns n。HeaderText ;
37、 row =2; for (int i=0; idataGridView1 。RowCount 1; i+) col =1; for (int j=0; jdataGridView1 .ColumnCount 1; j+) if (IsOnlyVisible ) if (dataGridView1 .Columnsj。Visible ) myexcel 。Cells i+2, col = dataGridView1。Rows i.Cells j。Value .ToString (); col =col +1; else myexcel .Cells i+2, j+1=dataGridView1
38、.Rows i.Cells j。Value。ToString () ; myexcel.Visible = true ; catch (Exception ex) throw ex; 2。 數(shù)據(jù)備份圖6try string strBacl = backup database db_CSManage to disk=” + txtPath。Text.Trim() + ” + txtName。Text。Trim() + ”。bak”; int i = sdb.Exec_str(strBacl); MessageBox.Show(”備份成功”); catch MessageBox。Show(備份失敗
39、”); 其中:txtPath是文件路徑的textbox, txtName是文件名的textbox3。 數(shù)據(jù)還原if (textPaht。Text != ”)getSqlConnection geCon = new getSqlConnection();SqlConnection con = geCon。GetCon();if (con。State = ConnectionState。Open)con。Close();string DateStr = Data Source=aa;Database=master;User id=sa;PWD=”;SqlConnection conn = new
40、SqlConnection(DateStr);conn。Open();/-殺掉所有連接db_CSManage 數(shù)據(jù)庫的進(jìn)程-string strSQL = ”select spid from master.。sysprocesses where dbid=db_id( db_CSManage) ”;SqlDataAdapter Da = new SqlDataAdapter(strSQL, conn);DataTable spidTable = new DataTable();Da。Fill(spidTable);SqlCommand Cmd = new SqlCommand();Cmd.Co
41、mmandType = CommandType.Text;Cmd.Connection = conn;for (int iRow = 0; iRow = spidTable。Rows.Count 1; iRow+)Cmd.CommandText = kill ” + spidTable。RowsiRow0.ToString(); /強行關(guān)閉用戶進(jìn)程Cmd。ExecuteNonQuery();conn.Close();conn。Dispose();/-SqlConnection sqlcon = new SqlConnection(DateStr);sqlcon.Open();SqlComman
42、d sqlCmd = new SqlCommand(”backup log db_CSManage to disk= + textPaht.Text.Trim() + ” restore database db_CSManage from disk= + textPaht。Text。Trim() + ”, sqlcon);sqlCmd.ExecuteNonQuery();sqlCmd.Dispose();sqlcon。Close();sqlcon.Dispose();MessageBox。Show(數(shù)據(jù)還原成功!, ”提示”, MessageBoxButtons。OK, MessageBoxI
43、con。Information);MessageBox.Show(”為了必免數(shù)據(jù)丟失,在數(shù)據(jù)庫還原后將關(guān)閉整個系統(tǒng)。);Application。Exit();elseMessageBox。Show(”請選擇備份文件!, 提示, MessageBoxButtons.OK, MessageBoxIcon。Warning);*實訓(xùn)七 幫助文檔的制作與C#的調(diào)用一。CHM幫助文檔制作網(wǎng)絡(luò)上有許多免費的CHM制作工具,如Pocket CHM就是其中的一種,才2。40MB,使用非常簡單,操作步驟如下:步驟一:按主題創(chuàng)建操作手冊的HTM格式的網(wǎng)頁,每個主題為一個HTML文件。步驟二:啟動Pocket CHM
44、,如下圖,單擊“新書按鈕,輸入主題,如下圖所示:步驟三:單擊“新書按鈕,輸入主題,然后把第一步創(chuàng)建的HTM文件從最右框拖到最左框,放開鼠標(biāo)后如下圖所示:步驟四:保存工程,執(zhí)行“工具”“編譯為CHM即可得到格式為CHM的操作手冊。二.C#調(diào)用幫助方檔的方法方法一:顯示指定 URL 處的幫助文件內(nèi)容 string helpfile = “helpfile。chm”; Help。ShowHelp(this, helpfile); 注:ShowHelp方法還有許多重載,請參考MSDN。 方法二:顯示指定幫助文件的索引 Help。ShowHelpIndex(this, helpfile);方法三:通過進(jìn)
45、程Process去調(diào)用 System.Diagnostics。Process。Start(“helpfile.chm); 下篇 B/S應(yīng)用程序開發(fā)實訓(xùn)三 公共數(shù)據(jù)處理類的創(chuàng)建(數(shù)據(jù)訪問層)一、配置數(shù)據(jù)庫連接1.Web.Config中的配置connectionStringsadd name=連接名 connectionString =”連接字符串”/connectionStrings2。數(shù)據(jù)訪問層中公共數(shù)據(jù)處理類的設(shè)置 protected SqlConnection LuoCon; /私有變量,數(shù)據(jù)庫連接 public 構(gòu)造函數(shù)() LuoCon = new SqlConnection(); L
46、uoCon。ConnectionString = ConfigurationManager。ConnectionStrings連接名”.ConnectionString; 二、數(shù)據(jù)訪問層中公共處理類所包含的常用方法:執(zhí)行select 查詢語句的方法,返回數(shù)據(jù)集 public DataSet GetDataSet (string strsql) SqlDataAdapter da = new SqlDataAdapter(strsql, LuoCon); DataSet ds = new DataSet(); da.Fill(ds); return ds; 調(diào)用存儲過程(不帶參數(shù)),返回數(shù)據(jù)集p
47、ublic DataSet GetDataSet(string ProcName, SqlParameter Params) LuoCon。Open(); SqlCommand Cmd = CreateCommand(ProcName, Params); SqlDataAdapter adapter = new SqlDataAdapter(Cmd); DataSet dataset = new DataSet(); adapter.Fill(dataset); LuoCon.Close(); return dataset; 執(zhí)行帶參數(shù)數(shù)組的存儲過程的方法 public int Exec_sq
48、l(string strsql, SqlParameter paras) luocon。Open(); SqlCommand cmd = new SqlCommand(strsql, luocon); cmd。CommandType = CommandType.StoredProcedure; if (paras != null) foreach (SqlParameter P in paras) cmd。Parameters。Add(P); return cmd.ExecuteNonQuery(); luocon.Close(); 執(zhí)行不帶參數(shù) 增加、刪除、修改、建表的SQL語句的方法 pu
49、blic int Exec_sql(string strsql) luocon。Close(); luocon.Open(); SqlCommand cmd = new SqlCommand(strsql, luocon); return cmd。ExecuteNonQuery(); luocon。Close(); 執(zhí)行帶統(tǒng)計功能的SQL語句的方法 public int Exec_Scalar(string strsql) luocon。Close(); luocon。Open(); SqlCommand cmd = new SqlCommand(strsql, luocon); return
50、 Convert 。ToInt32(cmd.ExecuteScalar()。ToString(); luocon。Close(); 執(zhí)行存儲過程,返回SqlCommand的方法private SqlCommand CreateCommand(string ProcName, SqlParameter Prams) Open(); SqlCommand Cmd = new SqlCommand(ProcName, Connection); Cmd.CommandType = CommandType.StoredProcedure; if (Prams != null) foreach (SqlP
51、arameter Parameter in Prams) Cmd。Parameters。Add(Parameter); return Cmd; 實例化一個用于調(diào)用存儲過程的參數(shù) public SqlParameter MakeParam(string ParamName, SqlDbType DbType, Int32 Size, ParameterDirection Direction, object Value) SqlParameter Param; if (Size 0) Param = new SqlParameter(ParamName, DbType, Size); else P
52、aram = new SqlParameter(ParamName, DbType); Param。Direction = Direction; if (Value != null) Param。Value = Value; return Param; 實例化一個用于調(diào)用存儲過程的輸入?yún)?shù) public SqlParameter MakeInParam(string ParamName, SqlDbType DbType, int Size, object Value) return MakeParam(ParamName, DbType, Size, ParameterDirection。I
53、nput, Value); 實訓(xùn)四 業(yè)務(wù)邏輯層的實現(xiàn)1。明確業(yè)務(wù)邏輯層的工作原理及設(shè)計的一般方法2。以考試系統(tǒng)中添加單選題為例,業(yè)務(wù)邏輯層中的應(yīng)實現(xiàn)增加、刪除、修改、查詢等基本功能,而要實現(xiàn)這些功能時,必須借助與數(shù)據(jù)庫字段相對應(yīng)用的一些性屬性以實現(xiàn)數(shù)據(jù)的操作.所以首先必須定義屬性以及能對屬性進(jìn)行讀取和存儲的私有成員。能對屬性進(jìn)行讀取和存儲的私有成員#region 私有成員private int _SID;private int _CourseID;private string _Title;private string _AnswerA;private string _AnswerB;priv
54、ate string _AnswerC;private string _AnswerD;private string _answer;#endregion定義屬性#region 屬性 public int SID set this。_SID = value; get return this 。_SID ; public int CourseID set this._CourseID = value; get return this 。_CourseID ; public string Title set this。_Title = value; get return this 。_Title
55、; public string AnswerA set this._AnswerA = value; get return this。_AnswerA ; public string AnswerB set this。_AnswerB = value; get return this。_AnswerB ; public string AnswerC set this。_AnswerC = value; get return this._AnswerC ; public string AnswerD set this._AnswerD = value; get return this。_Answ
56、erD ; public string answer set this。_answer = value; get return this._answer ; endregion實現(xiàn)增加、刪除、修改、查詢等方法以下是業(yè)務(wù)層中增加單選題的方法public bool InsertSingleSelect() SqlParameter Params= new SqlParameter7; DataBase db= new DataBase(); Params0=db.MakeInParam(”CourseID”, SqlDbType.Int , 4,CourseID ); /科目編號 Params1
57、= db。MakeInParam(”Title”, SqlDbType。VarChar, 1000, Title); /題目 Params2 = db.MakeInParam(AnswerA, SqlDbType。VarChar, 500, AnswerA); /答案A Params3 = db。MakeInParam(”AnswerB”, SqlDbType。VarChar, 500, AnswerB); /答案B Params4 = db.MakeInParam(”AnswerC”, SqlDbType。VarChar, 500, AnswerC); /答案C Params5 = db。M
58、akeInParam(”AnswerD”, SqlDbType。VarChar, 500, AnswerD); /答案D Params6 = db.MakeInParam(Answer, SqlDbType。VarChar, 2, answer ); /答案 int Count = db.Exec_sql(”Proc_SingleProblemAdd”, Params); if (Count 0) / Proc_SingleProblemAdd是SQLserver創(chuàng)建的存儲過程 return true; else return false; 以下是業(yè)務(wù)層中更新單選題的方法public bool
59、 UpdateSingleSelect( int sid) SqlParameter Params= new SqlParameter8; DataBase db = new DataBase(); Params0 = db。MakeInParam(”ID”, SqlDbType。Int, 4, sid ); Params1 = db.MakeInParam(CourseID”, SqlDbType。Int, 4, CourseID); /科目編號 Params2 = db。MakeInParam(”Title”, SqlDbType。VarChar, 1000, Title); /題目 Params3 = db。MakeInParam(”AnswerA, SqlDbType。VarChar, 500, AnswerA); /答案A Params4 = db。MakeInParam(”AnswerB, SqlDbType。VarChar, 500, AnswerB); /答案B Params5 = db。MakeInParam(”AnswerC”, SqlDbType.VarChar, 500, AnswerC); /答案C Params6 = db.MakeInParam(AnswerD”, SqlDbType。V
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 石油天然氣項目財務(wù)管理辦法
- 房子租借合同模板
- 投資非入股合同范例
- 出租房屋柜臺合同范例
- 承包荒溝合同模板
- 刻章店合同范例
- 常德購房合同范例
- 房屋經(jīng)營合同范例
- 廚房電線購買合同范例
- 建行租賃合同模板
- 世界問候日國旗下講話范文稿:讓溫暖的問候成為生活的習(xí)慣
- 基本農(nóng)田劃定技術(shù)規(guī)程(TDT1032-2011)
- 人教版英語七年級上冊全冊教材全解及單元測試卷
- 走近湖湘紅色人物知到章節(jié)答案智慧樹2023年湖南工商大學(xué)
- 第二章-熱力學(xué)第二定律課件
- 【超星爾雅學(xué)習(xí)通】探尋中國茶:一片樹葉的傳奇之旅網(wǎng)課章節(jié)答案
- 07FS02 防空地下室給排水設(shè)施安裝
- 國家中小學(xué)智慧教育平臺推動家校共育
- 船舶醫(yī)療救助程序
- 涵洞八字墻體積計算公式
- 一年級數(shù)學(xué)上冊2位置第1課時上下前后作業(yè)新人教版
評論
0/150
提交評論