




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第 16 章向數(shù)據(jù)庫(kù)中添加記錄信息錄入系統(tǒng),向數(shù)據(jù)庫(kù)中添加數(shù)據(jù)是一種常見(jiàn)的操作,如何將新的數(shù)據(jù)添加到數(shù)據(jù)庫(kù)中呢?本章通過(guò)向“人力資源管理系統(tǒng)”添加員工的操作給大家介紹添加數(shù)據(jù)的具體方法和步驟,系統(tǒng)采用三層架構(gòu)進(jìn)行設(shè)計(jì),并介紹了開(kāi)發(fā)過(guò)程中常見(jiàn)的問(wèn)題及解決方法。,系統(tǒng)分析 數(shù)據(jù)庫(kù)分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決,系統(tǒng)分析 數(shù)據(jù)庫(kù)分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決,16.1 系統(tǒng)分析,向數(shù)據(jù)庫(kù)表中增加新記錄是一種常見(jiàn)的操作,“人力資源管理系統(tǒng)”中的主要功能模塊中都涉及到添加記新錄到數(shù)
2、據(jù)庫(kù)表中的操作。如: 員工管理模塊中添加新員工操作; 考評(píng)管理模塊中添加員工的考評(píng)信息; 員工調(diào)動(dòng)管理模塊中添加員工的調(diào)動(dòng)信息; 培訓(xùn)管理模塊中添加員工培訓(xùn)的記錄信息; 獎(jiǎng)懲管理模塊中添加對(duì)員工的獎(jiǎng)懲信息等。 上面這些添加信息到數(shù)據(jù)庫(kù)表中的操作基本上是類(lèi)似的,在三層體系結(jié)構(gòu)中,表示層提供添加信息的錄入界面,業(yè)務(wù)邏輯層實(shí)現(xiàn)具體的業(yè)務(wù)邏輯,數(shù)據(jù)訪(fǎng)問(wèn)層負(fù)責(zé)把新數(shù)據(jù)添加到數(shù)據(jù)庫(kù)表中。本章以添加員工信息為例來(lái)介紹向數(shù)據(jù)庫(kù)中添加記錄的操作過(guò)程和代碼的編寫(xiě)。,系統(tǒng)分析 數(shù)據(jù)庫(kù)分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決,16.2 數(shù)據(jù)庫(kù)分析和設(shè)計(jì),添加員工信息
3、到數(shù)據(jù)庫(kù)中涉及到三個(gè)表:一個(gè)是存放員工信息的員工信息表,其他兩個(gè)是和員工信息表有外鍵約束的員工職位表和員工部門(mén)表。數(shù)據(jù)庫(kù)設(shè)計(jì)如下:,員工信息表(EmployInfo):用來(lái)存儲(chǔ)員工的信息。,在員工信息表中,字段Sid和Pid的值來(lái)自職位表和部門(mén)表中的字段。,職位表(PostInfo):用來(lái)存儲(chǔ)公司所有職位的名稱(chēng);,列名數(shù)據(jù)類(lèi)型是否空描述 Pidintno編號(hào),自動(dòng)編號(hào) postNameVarchar(10)no 職務(wù)名部門(mén)表(Section):用來(lái)存儲(chǔ)公司所有部門(mén)的信息。 列名數(shù)據(jù)類(lèi)型是否空描述 Sid int no編號(hào),自動(dòng)編號(hào) SectionNameVarchar(10)no部門(mén)名,系統(tǒng)分
4、析 數(shù)據(jù)庫(kù)分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決,16.3 系統(tǒng)設(shè)計(jì),在第15章中給出了系統(tǒng)的總體設(shè)計(jì),本節(jié)在第15章的基礎(chǔ)上,使用LINQ 操作實(shí)現(xiàn)添加員工信息的操作。用HrDAL、HrBLL、HrMamage分別表示數(shù)據(jù)訪(fǎng)問(wèn)層、業(yè)務(wù)邏輯層和表示層,DataLinq層輔助數(shù)據(jù)庫(kù)的讀寫(xiě)操作。下面介紹代碼的編寫(xiě)。 1. 在HrDAL數(shù)據(jù)訪(fǎng)問(wèn)層的HrDAL.cs文件中的DALEmployInfo類(lèi)里添加增加記錄的InsertRecord方法,編寫(xiě)代碼如下(代碼16-1-1.txt): 2. 在HrDAL數(shù)據(jù)訪(fǎng)問(wèn)層的HrDAL.cs文件中的DAL
5、EmployInfo類(lèi)里添加獲取員工標(biāo)號(hào)Eid字段最大值的SelectMaxRecordNo方法,編寫(xiě)代碼如下(代碼16-1-2.txt):,3. 在HrDAL數(shù)據(jù)訪(fǎng)問(wèn)層的HrDAL.cs文件中的DALPostInfo類(lèi)里添加從職位名稱(chēng)到職位編號(hào)轉(zhuǎn)換的方法SelectPIDByPName方法,這是錄入職位名稱(chēng)時(shí)是漢字表示的職位名稱(chēng),而保存到員工信息表則職位名稱(chēng)在PostInfo表中對(duì)應(yīng)的編號(hào)。代碼如下(代碼16-1-3.txt): 4. 在HrDAL數(shù)據(jù)訪(fǎng)問(wèn)層的HrDAL.cs文件中的DALPostInfo類(lèi)里添加返回表DALPostInfo的全部記錄,并存放在IList中的方法如下(代碼16
6、-1-4.txt): 5. 在HrDAL數(shù)據(jù)訪(fǎng)問(wèn)層的HrDAL.cs文件中的DALSectionInfo類(lèi)里添加從部門(mén)名稱(chēng)到部門(mén)編號(hào)轉(zhuǎn)換的方法SelectSIDBySName方法,這是因?yàn)槲覀冧浫氲牟块T(mén)名稱(chēng)是漢字表示的名稱(chēng),而保存到員工信息表中則是部門(mén)名稱(chēng)對(duì)應(yīng)的編號(hào)。代碼如下(代碼16-1-5.txt):,6. 在HrDAL數(shù)據(jù)訪(fǎng)問(wèn)層的HrDAL.cs文件中的DALSectionInfo類(lèi)里添加返回表Section的全部記錄,存放在IList中的方法如下(代碼16-1-6.txt): 7. 在業(yè)務(wù)邏輯層,分別添加如下方法以調(diào)用1-4步中添加到數(shù)據(jù)訪(fǎng)問(wèn)層中的方法。 在項(xiàng)目HrBLL中HrBLL.
7、cs文件的BLLEmployInfo添加代碼如下(代碼16-2-1.txt): 在項(xiàng)目HrBLL中HrBLL.cs文件的BLLPostInfo添加代碼如下(代碼16-2-2.txt): 在項(xiàng)目HrBLL中HrBLL.cs文件的BLLSectionInfo添加代碼如下(代碼16-2-3.txt):,8. 在表示層:設(shè)計(jì)Windows Form用來(lái)添加員工記錄,控件名稱(chēng)和屬性設(shè)置見(jiàn)源代碼,窗體上控件如下: (1)編寫(xiě)代碼實(shí)現(xiàn)添加輸入的記錄到數(shù)據(jù)庫(kù)中,代碼如下。 在窗體AddEmployInfo類(lèi)中添加方法happen用于將輸入的記錄內(nèi)容賦給定義的變量。 編寫(xiě)【添加】按鈕的單擊事件處理程序,實(shí)現(xiàn)添加
8、記錄(代碼16-3-3.txt)。 編寫(xiě)添加照片的鏈接單擊事件處理程序(代碼16-3-4.txt)。 編寫(xiě)AddEmployInfo的Load事件處理程序,實(shí)現(xiàn)初始化窗體(代碼16-3-5.txt)。,系統(tǒng)分析 數(shù)據(jù)庫(kù)分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決,16.4 運(yùn)行系統(tǒng),運(yùn)行程序出現(xiàn)添加記錄窗體,按要求輸入所需數(shù)據(jù),單擊添加按鈕,運(yùn)行結(jié)果如下:,系統(tǒng)分析 數(shù)據(jù)庫(kù)分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決,16.5 在我的Windows窗體應(yīng)用程序中應(yīng)用本系統(tǒng),本章編寫(xiě)的添加新員工信息小
9、模塊中的數(shù)據(jù)訪(fǎng)問(wèn)層和業(yè)務(wù)邏輯層的代碼不需做任何改動(dòng)就可用在整個(gè)“人力資源管理系統(tǒng)”項(xiàng)目開(kāi)發(fā)中,表示層部門(mén)分需要稍微改動(dòng)以適合項(xiàng)目的整體要求。,系統(tǒng)分析 數(shù)據(jù)庫(kù)分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決,16.6 開(kāi)發(fā)過(guò)程常見(jiàn)問(wèn)題及解決,開(kāi)發(fā)過(guò)程中經(jīng)常出現(xiàn)的問(wèn)題和解決方案如下: 1. 輸入數(shù)據(jù)的驗(yàn)證,如身份證號(hào)碼、電話(huà)號(hào)碼等。 解決方法是使用正則表達(dá)式,如下: 導(dǎo)入正則表達(dá)式名稱(chēng)空間 01 using System.Text.RegularExpressions; 定義驗(yàn)證的正則表達(dá)式 01 Regex r = new Regex(d17d|X|
10、d15);/用于驗(yàn)證身份證是否合法,01 Regex r1 = new Regex(d3)|d3-)?d8);/用于驗(yàn)證電話(huà)號(hào)碼 02 Regex r2 = new Regex(1-9d*.d*|0.d*1-9d*|0?.0+|0$);/用于驗(yàn)證工資是否符合要求 編碼進(jìn)行驗(yàn)證,如 if (r.IsMatch(txtIDCard.Text) = false) /如果txtIDCard中的值不符合定義的正則表達(dá)式要求,返回false MessageBox.Show(身份證不正確!); if (r1.IsMatch(txtTelephone.Text) = false) MessageBox.Sho
11、w(電話(huà)號(hào)碼不正確!); if (r2.IsMatch(txtGz.Text) = false) MessageBox.Show(工資格式不正確!); ,2. 保存圖像到數(shù)據(jù)庫(kù)圖像字段。 定義全局變量 string fileName = null;/用于存放照片的文件名 byte imgBytes = null;/用于將照片圖片轉(zhuǎn)為byte數(shù)組寫(xiě)入數(shù)據(jù)庫(kù) 通過(guò)打開(kāi)文件對(duì)話(huà)框控件,選擇圖片文件,并顯示在pictureBox中。 this.openFileDialog1.Filter = *.jpg|*.JPG|*.gif|*.GIF|*.bmp|*.BMP; if (openFileDialog
12、1.ShowDialog() = DialogResult.OK) fileName = openFileDialog1.FileName; this.pictureBox1.ImageLocation = fileName; , 利用文件流讀圖片文件,將二進(jìn)制的圖片內(nèi)容讀入byte數(shù)組中 FileStream fs = new FileStream(fileName, FileMode.Open); imgBytes = new bytefs.Length; BinaryReader br = new BinaryReader(fs); imgBytes = br.ReadBytes(Con
13、vert.ToInt32(fs.Length); 3. 自動(dòng)生成可用員工編號(hào),避免員工編號(hào)重復(fù)引起主鍵沖突導(dǎo)致添加失敗。解決方法是讀取數(shù)據(jù)庫(kù)表中員工編號(hào)字段的最大值,生成的新員工編號(hào)是員工編號(hào)字段的最大值加1的實(shí)現(xiàn)代碼如下: 在數(shù)據(jù)訪(fǎng)問(wèn)層添加得到員工編號(hào)最大值的方法,注意EmployeeInfo表中員工編號(hào)字段EID是字符型,為了得到最大值需要轉(zhuǎn)為整型。,public int SelectMaxRecordNo() /得到EmployInfo中Eid字段的最大值,便于添加記錄時(shí)自動(dòng)生成Eid字段的值避免出錯(cuò)。 try /利用LINQ查詢(xún)得到EmployInfo中Eid字段的最大值作為方法的返回值 return (from maxEID in objDataContext.EmployInfo select (Convert.ToInt32 ( maxEID.Eid).Max() ; catch (Exception ex) throw ex; , 在業(yè)務(wù)邏輯層添加
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 內(nèi)陸?zhàn)B殖市場(chǎng)趨勢(shì)預(yù)測(cè)與分析考核試卷
- 化工企業(yè)物流成本分析與控制方法考核試卷
- 廢氣排放考核試卷
- 光學(xué)玻璃微觀缺陷修復(fù)的表面活性劑應(yīng)用研究考核試卷
- 海洋腐蝕機(jī)理分析考核試卷
- 入場(chǎng)三級(jí)教育培訓(xùn)考核試卷(含答案)
- 2024年度全科專(zhuān)業(yè)基地住培學(xué)員對(duì)帶教師資的評(píng)價(jià)方案
- 環(huán)保知識(shí)題庫(kù) (一)
- 植樹(shù)節(jié)熱身活動(dòng)方案
- 永生花促銷(xiāo)活動(dòng)方案
- 公安出入境培訓(xùn)課件
- 領(lǐng)袖涅盤(pán)培訓(xùn)
- 瑞安市工業(yè)固廢與污泥無(wú)害化處置及資源化利用項(xiàng)目階段性竣工環(huán)境保護(hù)驗(yàn)收?qǐng)?bào)告
- 中草藥的種植技術(shù)
- 寺院裝修施工方案
- DB15T+2819-2022敖漢沙棘栽培技術(shù)規(guī)程
- 門(mén)店?duì)I銷(xiāo)課件 完整版
- 高效執(zhí)行四原則(課堂PPT)
- HEP-15,HEP-16,HEP-17系列電氣閥門(mén)定位器
- DDST(丹佛發(fā)展篩選試驗(yàn))相關(guān)知識(shí)考核試題及答案
- 門(mén)式剛架輕型房屋鋼結(jié)構(gòu)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論