版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录一、项目名称:工资管理系统设计2二、实训目的:2三、应掌握的知识点2四、应训练的能力点2五、数据库设计内容3 (一)需求分析.3 (二)数据库概念设计.3 (三)数据库逻辑设计5 (四)数据库与数据表设计 物理结构设计5 1.数据库与数据表设计.5 2.数据完整性设计.6六、数据库操作实施与结果数据库对象的设计7 (一)建数据库工资管理库.7 (二)建表员工信息表、部门信息表、工资信息表.7 (三)视图.9(四)存储过程.9(五)触发器 10(六)索引11(七)运行和维护12 1. 关系图的建立.12 2. 简单查询.123. 复杂查询.154.数据库的用户与权限管理175.数据库的备份.
2、206.数据的导入与导出.21七、总结22八、评语.23一、项目名称:工资管理系统设计二、实训目的:l 了解vs系统的理论l 掌握数据库设计的基本方法,熟悉数vs相关窗体的设计步骤;l 通过设计数据库系统应用课题,进一步熟悉并掌握使用vs设计系统的操作技术,提高动手能力,提高分析问题和解决问题的能力l 学习基本vs编程方法l 快速跟踪vs系统软件的新技术及市场应用动态。三、应掌握的知识点l vs基本原理l 项目式编程的设计方法、设计思路l 初步掌握一种编程语言四、应训练的能力点l vs2005的操作与使用l c#界面设计与编程思路l 数据库的建立与管理、vs界面的建立与操作l 命名空间的使用与
3、编程l 设计和开发一个工资管理系统五、工资管理系统设计内容(一)需求分析本系统要求实现以下主要功能:1.系统主要功能 主要任务是对各种员工信息进行日常的管理,如:输入、查询、修改、增加、删除,迅速准确地完成各种操作,快速打印出报表。2.软件功能系统需要提供以下查询功能:1) 员工基本信息查询2) 员工基本信息录入3) 员工信息浏览4) 员工登录(2) 数据库图设计(三)vs界面设计 1.登录界面设计2.主窗体界面设计3员工信息维护界面设计4.员工基本信息设置界面设计5.treeview控件和listview控件的使用:查看员工基本信息相关界面6.关于系统界面设计(四)程序相关代码一登录代码:
4、private void 登录_load(object sender, eventargs e) toolstripstatuslabel3.text = 欢迎使用工资管理系统; /窗体加载 显示欢迎问候语 try conn = new sqlconnection(data source=.;initial catalog=工资管理系统;integrated security=true); dataset ds1 = new dataset(); sda = new sqldataadapter(select 姓名 from 登录 , conn); if (conn.state = conne
5、ctionstate.closed) /判断数据库连接状态 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; /在状态栏上显示操作用户名和使用权限,并设置部分菜单对普通用户不可用 private void 关于本系统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 关于系统代码设计: 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) /窗体加载时为个别控件添加数据源 conn = new sqlconnection(); conn.connectionstring = data s
11、ource=.;initial catalog=工资管理系统;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; /绑定数据源 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; /绑定数据源 bobox2.displaymember = 职称; bobox2.valuemember = 职称; combobox3.items.add(男); combobox3.items.add(女); dt = new datatable(); datacolumn mykey = new datacolumn1; /创建仅含有一个元素的列数组 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) /触发响应事件 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, 年龄必须为数字!); return; if (!regex.ismatch(textbox4.text.trim(), 0-9*$) /使用正则表达式,确认输入的数据是否符合要求 errorprovider2.seterror(textbox4, 工资必须为数字组成
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(); /调用自定义方法 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); /添加对应的参数 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(); /为参数赋值 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) /判断与数据库的链接是否中断如果中
25、断则执行重新连接 conn.open(); com.executenonquery(); conn.close(); catch(exception ex) messagebox.show(保存数据时出错! + ex.message.tostring(); dt.rows.clear(); this.close(); 5 五:strp2相关代码设计: int aod; /全局变量 sqlconnection conn; /数据库连接对象 sqlcommand com; /sql命令对象 sqldataadapter da; /数据库适配器 conn = new sqlconnection();
26、 conn.connectionstring = data source=.;initial catalog=工资管理系统;integrated security=true; da = new sqldataadapter(select * from 考勤, conn); dataset ds = new dataset(); try if (conn.state = connectionstate.closed) /判断连接状态 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 /删除数据 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(删除数据成功!); 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 /添加数据 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(添加数据成功); view(); locktextbox(); 保存toolstripmenuitem.enabled = false; 取消toolstripmenuitem.enabled = false; catch (exception ex) messagebox.show(ex.message.tostring(); if (aod = 1) try /修改更新数据 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(修改数据成功); 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方法产生相应事件 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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五版精密零件加工定制合同样本2篇
- 2025年物流运输合同违约责任及赔偿标准3篇
- 2025年水电装修与节能灯具更换合同3篇
- 2025年新能源充电桩用地租赁合同3篇
- 2025年私人游艇转让合同包含船舶交易后的售后服务承诺3篇
- 二零二五年度航空客运合同标准版4篇
- 2025年度铝矿石质量检测与认证服务合同4篇
- 二零二五版电力工程合同履行监督补充协议3篇
- 2025年度酒店客房窗帘定制与节能环保材料采购合同4篇
- 二零二四南京家庭装修室内空气净化服务合同3篇
- 白熊效应(修订版)
- 小学数学知识结构化教学
- 视频监控维保项目投标方案(技术标)
- 社会组织能力建设培训
- 立项报告盖章要求
- 2022年睾丸肿瘤诊断治疗指南
- 被执行人给法院执行局写申请范本
- 主变压器试验报告模板
- 安全防护通道施工方案
- 视觉元素对心理感知的影响
- 柴油供货运输服务方案
评论
0/150
提交评论