版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第 16 章向數(shù)據(jù)庫中添加記錄信息錄入系統(tǒng),向數(shù)據(jù)庫中添加數(shù)據(jù)是一種常見的操作,如何將新的數(shù)據(jù)添加到數(shù)據(jù)庫中呢?本章通過向“人力資源管理系統(tǒng)”添加員工的操作給大家介紹添加數(shù)據(jù)的具體方法和步驟,系統(tǒng)采用三層架構(gòu)進(jìn)行設(shè)計(jì),并介紹了開發(fā)過程中常見的問題及解決方法。,系統(tǒng)分析 數(shù)據(jù)庫分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開發(fā)過程常見問題及解決,系統(tǒng)分析 數(shù)據(jù)庫分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開發(fā)過程常見問題及解決,16.1 系統(tǒng)分析,向數(shù)據(jù)庫表中增加新記錄是一種常見的操作,“人力資源管理系統(tǒng)”中的主要功能模塊中都涉及到添加記新錄到數(shù)
2、據(jù)庫表中的操作。如: 員工管理模塊中添加新員工操作; 考評管理模塊中添加員工的考評信息; 員工調(diào)動管理模塊中添加員工的調(diào)動信息; 培訓(xùn)管理模塊中添加員工培訓(xùn)的記錄信息; 獎懲管理模塊中添加對員工的獎懲信息等。 上面這些添加信息到數(shù)據(jù)庫表中的操作基本上是類似的,在三層體系結(jié)構(gòu)中,表示層提供添加信息的錄入界面,業(yè)務(wù)邏輯層實(shí)現(xiàn)具體的業(yè)務(wù)邏輯,數(shù)據(jù)訪問層負(fù)責(zé)把新數(shù)據(jù)添加到數(shù)據(jù)庫表中。本章以添加員工信息為例來介紹向數(shù)據(jù)庫中添加記錄的操作過程和代碼的編寫。,系統(tǒng)分析 數(shù)據(jù)庫分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開發(fā)過程常見問題及解決,16.2 數(shù)據(jù)庫分析和設(shè)計(jì),添加員工信息
3、到數(shù)據(jù)庫中涉及到三個表:一個是存放員工信息的員工信息表,其他兩個是和員工信息表有外鍵約束的員工職位表和員工部門表。數(shù)據(jù)庫設(shè)計(jì)如下:,員工信息表(EmployInfo):用來存儲員工的信息。,在員工信息表中,字段Sid和Pid的值來自職位表和部門表中的字段。,職位表(PostInfo):用來存儲公司所有職位的名稱;,列名數(shù)據(jù)類型是否空描述 Pidintno編號,自動編號 postNameVarchar(10)no 職務(wù)名部門表(Section):用來存儲公司所有部門的信息。 列名數(shù)據(jù)類型是否空描述 Sid int no編號,自動編號 SectionNameVarchar(10)no部門名,系統(tǒng)分
4、析 數(shù)據(jù)庫分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開發(fā)過程常見問題及解決,16.3 系統(tǒng)設(shè)計(jì),在第15章中給出了系統(tǒng)的總體設(shè)計(jì),本節(jié)在第15章的基礎(chǔ)上,使用LINQ 操作實(shí)現(xiàn)添加員工信息的操作。用HrDAL、HrBLL、HrMamage分別表示數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層和表示層,DataLinq層輔助數(shù)據(jù)庫的讀寫操作。下面介紹代碼的編寫。 1. 在HrDAL數(shù)據(jù)訪問層的HrDAL.cs文件中的DALEmployInfo類里添加增加記錄的InsertRecord方法,編寫代碼如下(代碼16-1-1.txt): 2. 在HrDAL數(shù)據(jù)訪問層的HrDAL.cs文件中的DAL
5、EmployInfo類里添加獲取員工標(biāo)號Eid字段最大值的SelectMaxRecordNo方法,編寫代碼如下(代碼16-1-2.txt):,3. 在HrDAL數(shù)據(jù)訪問層的HrDAL.cs文件中的DALPostInfo類里添加從職位名稱到職位編號轉(zhuǎn)換的方法SelectPIDByPName方法,這是錄入職位名稱時是漢字表示的職位名稱,而保存到員工信息表則職位名稱在PostInfo表中對應(yīng)的編號。代碼如下(代碼16-1-3.txt): 4. 在HrDAL數(shù)據(jù)訪問層的HrDAL.cs文件中的DALPostInfo類里添加返回表DALPostInfo的全部記錄,并存放在IList中的方法如下(代碼16
6、-1-4.txt): 5. 在HrDAL數(shù)據(jù)訪問層的HrDAL.cs文件中的DALSectionInfo類里添加從部門名稱到部門編號轉(zhuǎn)換的方法SelectSIDBySName方法,這是因?yàn)槲覀冧浫氲牟块T名稱是漢字表示的名稱,而保存到員工信息表中則是部門名稱對應(yīng)的編號。代碼如下(代碼16-1-5.txt):,6. 在HrDAL數(shù)據(jù)訪問層的HrDAL.cs文件中的DALSectionInfo類里添加返回表Section的全部記錄,存放在IList中的方法如下(代碼16-1-6.txt): 7. 在業(yè)務(wù)邏輯層,分別添加如下方法以調(diào)用1-4步中添加到數(shù)據(jù)訪問層中的方法。 在項(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用來添加員工記錄,控件名稱和屬性設(shè)置見源代碼,窗體上控件如下: (1)編寫代碼實(shí)現(xiàn)添加輸入的記錄到數(shù)據(jù)庫中,代碼如下。 在窗體AddEmployInfo類中添加方法happen用于將輸入的記錄內(nèi)容賦給定義的變量。 編寫【添加】按鈕的單擊事件處理程序,實(shí)現(xiàn)添加
8、記錄(代碼16-3-3.txt)。 編寫添加照片的鏈接單擊事件處理程序(代碼16-3-4.txt)。 編寫AddEmployInfo的Load事件處理程序,實(shí)現(xiàn)初始化窗體(代碼16-3-5.txt)。,系統(tǒng)分析 數(shù)據(jù)庫分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開發(fā)過程常見問題及解決,16.4 運(yùn)行系統(tǒng),運(yùn)行程序出現(xiàn)添加記錄窗體,按要求輸入所需數(shù)據(jù),單擊添加按鈕,運(yùn)行結(jié)果如下:,系統(tǒng)分析 數(shù)據(jù)庫分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開發(fā)過程常見問題及解決,16.5 在我的Windows窗體應(yīng)用程序中應(yīng)用本系統(tǒng),本章編寫的添加新員工信息小
9、模塊中的數(shù)據(jù)訪問層和業(yè)務(wù)邏輯層的代碼不需做任何改動就可用在整個“人力資源管理系統(tǒng)”項(xiàng)目開發(fā)中,表示層部門分需要稍微改動以適合項(xiàng)目的整體要求。,系統(tǒng)分析 數(shù)據(jù)庫分析和設(shè)計(jì) 系統(tǒng)設(shè)計(jì) 運(yùn)行系統(tǒng) 在我的WinForm應(yīng)用中應(yīng)用本系統(tǒng) 開發(fā)過程常見問題及解決,16.6 開發(fā)過程常見問題及解決,開發(fā)過程中經(jīng)常出現(xiàn)的問題和解決方案如下: 1. 輸入數(shù)據(jù)的驗(yàn)證,如身份證號碼、電話號碼等。 解決方法是使用正則表達(dá)式,如下: 導(dǎo)入正則表達(dá)式名稱空間 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)證電話號碼 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(電話號碼不正確!); if (r2.IsMatch(txtGz.Text) = false) MessageBox.Show(工資格式不正確!); ,2. 保存圖像到數(shù)據(jù)庫圖像字段。 定義全局變量 string fileName = null;/用于存放照片的文件名 byte imgBytes = null;/用于將照片圖片轉(zhuǎn)為byte數(shù)組寫入數(shù)據(jù)庫 通過打開文件對話框控件,選擇圖片文件,并顯示在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. 自動生成可用員工編號,避免員工編號重復(fù)引起主鍵沖突導(dǎo)致添加失敗。解決方法是讀取數(shù)據(jù)庫表中員工編號字段的最大值,生成的新員工編號是員工編號字段的最大值加1的實(shí)現(xiàn)代碼如下: 在數(shù)據(jù)訪問層添加得到員工編號最大值的方法,注意EmployeeInfo表中員工編號字段EID是字符型,為了得到最大值需要轉(zhuǎn)為整型。,public int SelectMaxRecordNo() /得到EmployInfo中Eid字段的最大值,便于添加記錄時自動生成Eid字段的值避免出錯。 try /利用LINQ查詢得到EmployInfo中Eid字段的最大值作為方法的返回值 return (from maxEID in objDataContext.EmployInfo select (Convert.ToInt32 ( maxEID.Eid).Max() ; catch (Exception ex) throw ex; , 在業(yè)務(wù)邏輯層添加
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- (2025)復(fù)雜剖宮產(chǎn)手術(shù)專家共識課件
- 松鼠英語培訓(xùn)教程課件
- 《多邊形及其內(nèi)角和》
- 松下濾鏡介紹
- 杭州濱江社區(qū)培訓(xùn)課件
- 機(jī)電維修培訓(xùn)課件
- 2026年安徽財(cái)貿(mào)職業(yè)學(xué)院單招職業(yè)技能筆試參考題庫帶答案解析
- 2026年黑龍江生態(tài)工程職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性考試參考題庫帶答案解析
- 2026年貴州城市職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性考試備考題庫帶答案解析
- 2026年貴州應(yīng)用技術(shù)職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試參考題庫帶答案解析
- sl582-2012水工金屬結(jié)構(gòu)制造安裝質(zhì)量檢驗(yàn)通則
- 《美麗山河》(教學(xué)設(shè)計(jì))-2023-2024學(xué)年六年級上冊綜合實(shí)踐活動安徽大學(xué)版
- 2024年語文常見語法錯誤試題及答案
- 2025年民兵基礎(chǔ)考試試題及答案
- 湘教版九年級(上)期末考試數(shù)學(xué)試題(含答案)
- UL294標(biāo)準(zhǔn)中文版-2018版門禁系統(tǒng)單元
- 蛇類醫(yī)療疾病
- GB/T 36547-2024電化學(xué)儲能電站接入電網(wǎng)技術(shù)規(guī)定
- 2024年化學(xué)能源在建筑領(lǐng)域的節(jié)能應(yīng)用
- GB/T 19342-2024手動牙刷一般要求和檢測方法
- 生活垃圾焚燒發(fā)電廠摻燒一般工業(yè)固廢和協(xié)同處置污泥項(xiàng)目環(huán)評資料環(huán)境影響
評論
0/150
提交評論