數(shù)據(jù)庫課程設計工資管理系統(tǒng)_第1頁
數(shù)據(jù)庫課程設計工資管理系統(tǒng)_第2頁
數(shù)據(jù)庫課程設計工資管理系統(tǒng)_第3頁
數(shù)據(jù)庫課程設計工資管理系統(tǒng)_第4頁
數(shù)據(jù)庫課程設計工資管理系統(tǒng)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄一、項目名稱:工資管理系統(tǒng)設計2二、實訓目的:2三、應掌握的知識點2四、應訓練的能力點2五、數(shù)據(jù)庫設計內(nèi)容3 (一)需求分析.3 (二)數(shù)據(jù)庫概念設計.3 (三)數(shù)據(jù)庫邏輯設計5 (四)數(shù)據(jù)庫與數(shù)據(jù)表設計 物理結(jié)構(gòu)設計5 1.數(shù)據(jù)庫與數(shù)據(jù)表設計.5 2.數(shù)據(jù)完整性設計.6六、數(shù)據(jù)庫操作實施與結(jié)果數(shù)據(jù)庫對象的設計7 (一)建數(shù)據(jù)庫工資管理庫.7 (二)建表員工信息表、部門信息表、工資信息表.7 (三)視圖.9(四)存儲過程.9(五)觸發(fā)器 10(六)索引11(七)運行和維護12 1. 關系圖的建立.12 2. 簡單查詢.123. 復雜查詢.154.數(shù)據(jù)庫的用戶與權限管理175.數(shù)據(jù)庫的備份.

2、206.數(shù)據(jù)的導入與導出.21七、總結(jié)22八、評語.23一、項目名稱:工資管理系統(tǒng)設計二、實訓目的:l 了解vs系統(tǒng)的理論l 掌握數(shù)據(jù)庫設計的基本方法,熟悉數(shù)vs相關窗體的設計步驟;l 通過設計數(shù)據(jù)庫系統(tǒng)應用課題,進一步熟悉并掌握使用vs設計系統(tǒng)的操作技術,提高動手能力,提高分析問題和解決問題的能力l 學習基本vs編程方法l 快速跟蹤vs系統(tǒng)軟件的新技術及市場應用動態(tài)。三、應掌握的知識點l vs基本原理l 項目式編程的設計方法、設計思路l 初步掌握一種編程語言四、應訓練的能力點l vs2005的操作與使用l c#界面設計與編程思路l 數(shù)據(jù)庫的建立與管理、vs界面的建立與操作l 命名空間的使用與

3、編程l 設計和開發(fā)一個工資管理系統(tǒng)五、工資管理系統(tǒng)設計內(nèi)容(一)需求分析本系統(tǒng)要求實現(xiàn)以下主要功能:1.系統(tǒng)主要功能 主要任務是對各種員工信息進行日常的管理,如:輸入、查詢、修改、增加、刪除,迅速準確地完成各種操作,快速打印出報表。2.軟件功能系統(tǒng)需要提供以下查詢功能:1) 員工基本信息查詢2) 員工基本信息錄入3) 員工信息瀏覽4) 員工登錄(2) 數(shù)據(jù)庫圖設計(三)vs界面設計 1.登錄界面設計2.主窗體界面設計3員工信息維護界面設計4.員工基本信息設置界面設計5.treeview控件和listview控件的使用:查看員工基本信息相關界面6.關于系統(tǒng)界面設計(四)程序相關代碼一登錄代碼:

4、private void 登錄_load(object sender, eventargs e) toolstripstatuslabel3.text = 歡迎使用工資管理系統(tǒng); /窗體加載 顯示歡迎問候語 try conn = new sqlconnection(data source=.;initial catalog=工資管理系統(tǒng);integrated security=true); dataset ds1 = new dataset(); sda = new sqldataadapter(select 姓名 from 登錄 , conn); if (conn.state = conne

5、ctionstate.closed) /判斷數(shù)據(jù)庫連接狀態(tài) conn.open(); sda.fill(ds1, tablename); conn.close(); combobox1.datasource = ds1.tablestablename; combobox1.displaymember = 姓名; combobox1.valuemember = 姓名; catch(exception ex) /異常處理 messagebox.show(ex.message.tostring(); 2 主窗體代碼: private void mainworker_load(object sende

6、r, eventargs e) if (登錄.userright.tostring().trim() = 2) 員工管理toolstripmenuitem.enabled = false; 基礎信息設置ftoolstripmenuitem.enabled = false; this.tslusername.text = |操作用戶: + 登錄.username; this.tsluserright.text = |操作權限: + 登錄.userright; /在狀態(tài)欄上顯示操作用戶名和使用權限,并設置部分菜單對普通用戶不可用 private void 關于本系統(tǒng)toolstripmenuite

7、m_click(object sender, eventargs e) aboutfrm a = new aboutfrm(); /顯示對話框 a.showdialog(); private void 計算器toolstripmenuitem_click(object sender, eventargs e) /利用進程打開計算器 system.diagnostics.process.start(calc.exe); private void 記事本toolstripmenuitem_click(object sender, eventargs e) /利用進程打開記事本 system.dia

8、gnostics.process.start(notepad.exe); private void 查看員工考勤toolstripmenuitem_click(object sender, eventargs e) /打開窗體strp2 strp2 s = new strp2(); s.show(); private void 基礎信息設置ftoolstripmenuitem_click(object sender, eventargs e) /打開窗體strp1 strp1 s = new strp1(); s.show(); private void 員工管理toolstripmenuit

9、em_click(object sender, eventargs e) /打開窗體strp3 strp3 s = new strp3(); s.show(); 3 關于系統(tǒng)代碼設計: private void button1_click(object sender, eventargs e) this.close(); this.backcolor = color.yellow; private void aboutfrm_load(object sender, eventargs e) bcolor = this.backcolor; private void 默認toolstripmen

10、uitem_click(object sender, eventargs e) this.backcolor = bcolor; private void 紅toolstripmenuitem_click(object sender, eventargs e) this.backcolor = color.red; 4 窗體strp1相關代碼 private void strp1_load(object sender, eventargs e) /窗體加載時為個別控件添加數(shù)據(jù)源 conn = new sqlconnection(); conn.connectionstring = data s

11、ource=.;initial catalog=工資管理系統(tǒng);integrated security=true; bobox1.items.clear(); sda = new sqldataadapter(select distinct 部門名稱from 員工, conn); dataset ds = new dataset(); if (conn.state = connectionstate.closed) conn.open(); sda.fill(ds, tablename); conn.close(); bobox1.datasource = ds.

12、tables0; /綁定數(shù)據(jù)源 bobox1.displaymember = 部門名稱; bobox1.valuemember = 部門名稱; sda2 = new sqldataadapter(select distinct 職稱from 員工, conn); dataset ds2 = new dataset(); if (conn.state = connectionstate.closed) conn.open(); sda2.fill(ds2, table); conn.close(); bobox2.datasource = ds2.

13、tables0; /綁定數(shù)據(jù)源 bobox2.displaymember = 職稱; bobox2.valuemember = 職稱; combobox3.items.add(男); combobox3.items.add(女); dt = new datatable(); datacolumn mykey = new datacolumn1; /創(chuàng)建僅含有一個元素的列數(shù)組 datacolumn cou1 = new datacolumn(); cou1.columnname = 工號; dt.columns.add(cou1); mykey0 = cou1;

14、dt.primarykey = mykey; /設置主鍵 dt.columns.add(姓名,typeof(string); /添加不同的字段 dt.columns.add(性別, typeof(string); dt.columns.add(年齡, typeof(string); dt.columns.add(籍貫, typeof(string); dt.columns.add(身份證號, typeof(string); dt.columns.add(婚姻狀況, typeof(string); dt.columns.add(學歷, typeof(string); dt.columns.add

15、(部門名稱, typeof(string); dt.columns.add(工種, typeof(string); dt.columns.add(職稱, typeof(string); private void combobox1_selectedindexchanged(object sender, eventargs e) /觸發(fā)響應事件 sda = new sqldataadapter(select distinct 職稱from 員工where 部門名稱= + combobox1.text + , conn); dataset ds = new dataset(); if(conn.s

16、tate=connectionstate.closed) conn.open(); sda.fill(ds,員工表); conn.close(); combobox2.datasource = ds.tables0; combobox2.displaymember = 職稱; combobox2.valuemember = 職稱; private void button3_click(object sender, eventargs e) if (textbox1.text = )/主鍵不能為空 messagebox.show(工號不能為空!); if (combobox1.text =) m

17、essagebox.show(部門名稱不能為空!); if (combobox2.text = ) messagebox.show(職稱不能為空!); if (!regex.ismatch(textbox3.text.trim(), 0-9*$) /引用正則表達式 errorprovider1.seterror(textbox3, 年齡必須為數(shù)字!); return; if (!regex.ismatch(textbox4.text.trim(), 0-9*$) /使用正則表達式,確認輸入的數(shù)據(jù)是否符合要求 errorprovider2.seterror(textbox4, 工資必須為數(shù)字組成

18、!); return; errorprovider1.clear(); errorprovider2.clear(); textbox1.focus(); try datarow dr = dt.newrow(); dr工號=textbox1.text.trim(); /為相應的列賦值 dr姓名=textbox2.text.trim(); dr性別=combobox3.text.trim(); dr年齡=textbox3.text.trim(); dr籍貫=textbox5.text.trim(); dr身份證號=textbox4.text.trim(); dr婚姻狀況=textbox6.te

19、xt.trim(); dr學歷=textbox7.text.trim(); dr部門名稱=combobox1.text.trim(); dr工種=textbox8.text.trim(); dr職稱=combobox2.text.trim(); dt.rows.add(dr); cleartext(); catch (exception ex) messagebox.show(ex.message.tostring(); private void button4_click(object sender, eventargs e) cleartext(); /調(diào)用自定義方法 private vo

20、id button1_click(object sender, eventargs e) string sql = insert into 員工(工號,姓名,性別,年齡,籍貫,身份證號,婚姻狀況,學歷,部門名稱,工種,職稱) values (工號,姓名,性別,年齡,籍貫,身份證號,婚姻狀況,學歷,部門名稱,工種,職稱); com = new sqlcommand(sql, conn); com.parameters.add(new sqlparameter(工號, sqldbtype.varchar); /添加對應的參數(shù) com.parameters.add(new sqlparameter(

21、姓名, sqldbtype.varchar); com.parameters.add(new sqlparameter(性別, sqldbtype.varchar); com.parameters.add(new sqlparameter(年齡, sqldbtype.varchar); com.parameters.add(new sqlparameter(籍貫, sqldbtype.varchar); com.parameters.add(new sqlparameter(身份證號, sqldbtype.varchar); com.parameters.add(new sqlparamete

22、r(婚姻狀況, sqldbtype.varchar); com.parameters.add(new sqlparameter(學歷, sqldbtype.varchar); com.parameters.add(new sqlparameter(部門名稱, sqldbtype.varchar); com.parameters.add(new sqlparameter(工種, sqldbtype.varchar); com.parameters.add(new sqlparameter(職稱, sqldbtype.varchar); for (int i = 0; i dt.rows.coun

23、t; i+) com.parameters工號.value = dt.rowsi0.tostring(); /為參數(shù)賦值 com.parameters姓名.value = dt.rowsi1.tostring(); com.parameters性別.value = dt.rowsi2.tostring(); com.parameters年齡.value = dt.rowsi3.tostring(); com.parameters籍貫.value = dt.rowsi4.tostring(); com.parameters身份證號.value = dt.rowsi5.tostring(); co

24、m.parameters婚姻狀況.value = dt.rowsi6.tostring(); com.parameters學歷.value = dt.rowsi7.tostring(); com.parameters部門名稱.value = dt.rowsi8.tostring(); com.parameters工種.value = dt.rowsi9.tostring(); com.parameters職稱.value = dt.rowsi10.tostring(); try if (conn.state = connectionstate.closed) /判斷與數(shù)據(jù)庫的鏈接是否中斷如果中

25、斷則執(zhí)行重新連接 conn.open(); com.executenonquery(); conn.close(); catch(exception ex) messagebox.show(保存數(shù)據(jù)時出錯! + ex.message.tostring(); dt.rows.clear(); this.close(); 5 五:strp2相關代碼設計: int aod; /全局變量 sqlconnection conn; /數(shù)據(jù)庫連接對象 sqlcommand com; /sql命令對象 sqldataadapter da; /數(shù)據(jù)庫適配器 conn = new sqlconnection();

26、 conn.connectionstring = data source=.;initial catalog=工資管理系統(tǒng);integrated security=true; da = new sqldataadapter(select * from 考勤, conn); dataset ds = new dataset(); try if (conn.state = connectionstate.closed) /判斷連接狀態(tài) conn.open(); int count = da.fill(ds, 員工表); conn.close(); datagridview1.datasource

27、= ds.tables員工表; /偉控件綁定設計院,填充控件 toolstripstatuslabel1.text = 貴公司共有 + count.tostring() + 個員工加班或缺勤; catch (systemexception ex) messagebox.show(錯誤: + ex.message, 錯誤!, messageboxbuttons.ok, messageboxicon.information); private void 刪除toolstripmenuitem_click(object sender, eventargs e) if (messagebox.show

28、(確定要刪除信息嗎?, 刪除提示:, messageboxbuttons.ok, messageboxicon.question) = dialogresult.ok) try /刪除數(shù)據(jù) com = new sqlcommand(delete from 考勤where 工號=+convert.tostring(datagridview10,datagridview1.currentcell.rowindex.value)+,conn); if (conn.state = connectionstate.closed) conn.open(); com.executenonquery(); c

29、onn.close(); messagebox.show(刪除數(shù)據(jù)成功!); cleartext(); view(); catch(exception ex) messagebox.show(ex.message.tostring(); private void 保存toolstripmenuitem_click(object sender, eventargs e) if (textbox1.text = ) messagebox.show(工號不能為空!); return; if (combobox3.text = ) messagebox.show(月份不能為空!); return; i

30、f (aod = 0) try da = new sqldataadapter(select * from 考勤where 工號= + textbox1.text.trim() + and 月份=+combobox3.text.trim()+, conn); dataset dsl = new dataset(); if (conn.state = connectionstate.closed) conn.open(); int count = da.fill(dsl, 視圖表); conn.close(); if (count != 0) /起到一個判斷作用 messagebox.show(

31、該員工本月考勤情況已存在,請重新輸入!); textbox1.focus(); return; else /添加數(shù)據(jù) com = new sqlcommand(insert into 考勤(工號,加班工時,缺勤工時,加班類型,缺勤類型,月份) values( + textbox1.text.trim() + , + textbox2.text.trim() + , + textbox4.text.trim() + , + combobox2.text.trim() + , + combobox1.text.trim()+ ,+combobox3.text.trim()+),conn); if

32、(conn.state = connectionstate.closed) conn.open(); com.executenonquery(); conn.close(); messagebox.show(添加數(shù)據(jù)成功); view(); locktextbox(); 保存toolstripmenuitem.enabled = false; 取消toolstripmenuitem.enabled = false; catch (exception ex) messagebox.show(ex.message.tostring(); if (aod = 1) try /修改更新數(shù)據(jù) if (c

33、onn.state = connectionstate.closed) conn.open(); com = new sqlcommand(update 考勤set 加班工時= + textbox2.text.trim() + ,缺勤工時= + textbox4.text.trim() + ,加班類型= + combobox2.text.trim() + ,缺勤類型= + combobox1.text.trim() + where 工號= + textbox1.text.trim() + and 月份= + combobox3.text.trim() + , conn); com.execut

34、enonquery(); conn.close(); messagebox.show(修改數(shù)據(jù)成功); view(); locktextbox(); 保存toolstripmenuitem.enabled = false; 取消toolstripmenuitem.enabled = false; catch (exception ex) messagebox.show(ex.message.tostring(); private void datagridview1_cellclick(object sender, datagridviewcelleventargs e) /定義datagri

35、dview1_cellclick方法產(chǎn)生相應事件 textbox1.text = convert.tostring(datagridview10, datagridview1.currentcell.rowindex.value).trim(); textbox2.text = convert.tostring(datagridview11, datagridview1.currentcell.rowindex.value).trim(); textbox4.text = convert.tostring(datagridview12, datagridview1.currentcell.rowindex.value).trim(); combobox2.text = convert.tostring(datagridview13, datagridview1.currentcell.rowindex.value).trim(); combobox1.text = convert.tostring(datagri

溫馨提示

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

評論

0/150

提交評論