




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Windows界面设计,安徽机电职业技术学院信息工程系汪学文(wxwOOP)课程网站:2012年12月,2,任务6:将员工信息保存到数据库,学习目标:进一步使用SQLServer2005Express数据库。设计自定义对话框窗体。将comboBox(下拉列表)绑定到数据表。将用户输入的数据保存到数据库,本任务在任务5“使用数据库”基础上继续进行。,3,6.1在“员工列表”窗体中调用“增加新员工”窗体,在“员工列表”窗体中,单击“添加员工”按钮,启动“增加新员工”窗体。,4,“增加新员工”窗体作为对话框调用,我们希望:如果用户点击“新建”完成增加新员工,那么返回时,需要刷新员工列表。如果用户点击“取消”,由于数据没有变化,不需要刷新员工列表。因此,需要“增加新员工”窗体作为自定义对话框,在成功时返回DialogResult.OK,否则返回DialogResult.Cancel。,privatevoidbtnNewEmployee_Click(objectsender,EventArgse)FrmNewEmployeefrmEmp=newFrmNewEmployee();if(DialogResult.OK=frmEmp.ShowDialog()dsEmployee.Clear();/清除内存数据集中的数据BindGrid();/重新绑定数据,5,设计自定义对话框窗体,如上所述,需要将“增加新员工”窗体设置成自定义对话框。“新建”按钮的DialogResult属性设置为“OK”“取消”按钮的DialogResult属性设置为“Cancel”这时,“新建”和“取消”按钮的Click事件中的this.Close()语句就可以去掉了。还可以设置窗体的如下属性:AcceptButton:btnOK-按回车相当于按些按钮CancelButton:btnCancel-按Esc键相当于按此按钮,6,6.2将部门列表绑定到ComboBox控件,拖放SqlConnection控件到“添加新员工”窗体,命名为cnBlueHill。设置ConnectionString属性为数据库拖放SqlDataAdapter控件到窗体,命名为daDepart。设置SelectCommand的Connection属性为cnBlueHill设置SelectCommand的CommandText属性为:SELECTDeptID,DeptNameFROMtblDepartment以上可以通过“数据适配器配置向导”来完成拖放DataSet控件到“添加新员工”窗体,命名为dsDepart。注意要选择“非类型化数据集”,7,6.2将部门列表绑定到ComboBox控件,在FrmNewEmployee_Load事件中编写以下代码:,privatevoidFrmNewEmployee_Load(objectsender,EventArgse)try/将部门列表数据填充内存数据集的Depart表daDepart.Fill(dsDepart,Depart);/设置部门下拉列表框的数据源为上述Depart表cbDepart.DataSource=dsDepart.TablesDepart;/设置部门下拉列表框的显示字段为DeptNamecbDepart.DisplayMember=DeptName;/设置部门下拉列表框的值字段为DeptIDcbDepart.ValueMember=DeptID;catchMessageBox.Show(读取部门列表数据出错,可能无法添加员工。,错误,MessageBoxButtons.OK,MessageBoxIcon.Error);return;,8,6.3将员工信息保存到数据库,保存数据主要用到数据库的Insert操作。拖放SqlCommand控件到窗体上设置Connection属性为cnBlueHill设置CommandText属性为:,INSERTINTOtblEmployee(Name,LoginName,Password,Birthday,Email,DeptID,BasicSalary,Title,Telephone,OnboardDate,SelfIntro,VacationRemain,EmployeeLevel,PhotoImage)VALUES(Name,LoginName,Password,Birthday,Email,DeptID,BasicSalary,Title,Telephone,OnboardDate,SelfIntro,VacationRemain,EmployeeLevel,PhotoImage),为什么需要保存OnBoardDate等列的数据?因为这些列被设计成非空列(不允许空),9,执行插入操作,由此可见,将员工信息保存到数据库需要进行以下几步操作:打开数据库连接给参数集合(Parameters对象)分别赋值执行Command对象的ExecuteNonQuery方法关闭数据库连接,10,Code1/5:新建时,要求窗体进行验证,privatevoidbtkOK_Click(objectsender,EventArgse)/激发窗体内所有控件进行验证/如果验证不通过,不退出,继续要求输入if(!this.ValidateChildren()/设为None,窗体将不会关闭this.DialogResult=DialogResult.None;return;,11,Code2/5:给参数对象赋值,/打开数据库连接,并给参数对象赋值cmdInsertEmp.Connection.Open();cmdInsertEmp.ParametersName.Value=tbName.Text;cmdInsertEmp.ParametersLoginName.Value=tbLogin.Text;cmdInsertEmp.ParametersPassword.Value=tbPassword.Text;cmdInsertEmp.ParametersBirthday.Value=Convert.ToDateTime(tbBirthday.Text);cmdInsertEmp.ParametersEmail.Value=tbEmail.Text;cmdInsertEmp.ParametersDeptid.Value=cbDepart.SelectedValue;cmdInsertEmp.ParametersTitle.Value=tbTitle.Text;cmdInsertEmp.ParametersEmployeeLevel.Value=numLevel.Value;cmdInsertEmp.ParametersBasicSalary.Value=numSalary.Value;cmdInsertEmp.ParametersTelephone.Value=tbPhone.Text;cmdInsertEmp.ParametersSelfINtro.Value=tbSelfIntro.Text;cmdInsertEmp.ParametersOnboardDate.Value=DateTime.Now;cmdInsertEmp.ParametersVacationRemain.Value=0;/暂且不对照片列进行处理,设为空值,如果需要处理,用下页的代码代替cmdInsertEmp.ParametersPhotoImage.Value=Convert.DBNull;,12,*Code3/5:将照片信息存入参数,/处理照片数据ImageConverteric=newImageConverter();bytephotoByteArray=ic.ConvertTo(pbPhoto.Image,typeof(byte)asbyte;if(photoByteArray!=null)cmdInsertEmp.ParametersPhotoImage.Value=photoByteArray;elsecmdInsertEmp.ParametersPhotoImage.Value=Convert.DBNull;,使用对象浏览器,了解ImageConvert类及其ConvertTo方法。,13,*Code4/5:新建时,要求窗体进行验证,trycmdInsertEmp.ExecuteNonQuery();MessageBox.Show(成功修改员工信息。,成功,MessageBoxButtons.OK,MessageBoxIcon.Information);catch(System.Data.SqlClient.SqlExceptionsqlex)/SqlServer错误号代表唯一约束冲突,说明登录名重复。if(sqlex.Number=2627)MessageBox.Show(登录名不能重复。,错误,MessageBoxButtons.OK,MessageBoxIcon.Error);elseMessageBox.Show(读取数据库错误。,错误,MessageBoxButtons.OK,MessageBoxIcon.Error);this.DialogResult=DialogResult.None;,怎样做到,登录名重复时,会引发数据库唯一约束?,14,*Code5/5:新建时,要求窗体进行验证,catchMessageBox.Show(创建员工出错,请检查输入数据格式是否正确。,错误,MessageBoxButtons.OK,MessageBoxIcon.Error);this.DialogResult=DialogResult.None;finallycmdInsertEmp.Connection.Close();,15,6.4回顾,进一步熟悉自定义对话框的设计;掌握将数据库查询结果绑定到列表控件(如ComboBox或DataGridView);进一步掌握Connection对象、DataAdapter对象、Comm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年4月重庆市妇幼保健院部分岗位招聘模拟试卷附答案详解(模拟题)
- 2025江西吉安市吉水县吉瑞招商运营有限公司面向社会招聘1人模拟试卷含答案详解
- 2025贵州省文化和旅游厅所属事业单位第十三届人博会引进人才3人模拟试卷及完整答案详解1套
- 2025贵州惠水县公益性岗位招聘4人考前自测高频考点模拟试题有答案详解
- 2025标准车辆买卖合同模板
- 2025内蒙古鑫和资源投资集团有限责任公司招聘26名模拟试卷含答案详解
- 2025规范的劳动合同样本
- 2025江西九江市武宁县医疗卫生单位招聘劳务派遣人员3人考前自测高频考点模拟试题及1套参考答案详解
- 2025年河北石家庄海关技术中心公开招聘劳务派遣类工作人员2名模拟试卷及参考答案详解1套
- 2025年深圳房地产中介服务合同
- 煤矿掘进知识课件
- 《陆上风电场工程设计概算编制规定及费用标准》(NB-T 31011-2019)
- 创业投资免责声明范本
- (高清版)TDT 1001-2012 地籍调查规程
- 办案审讯员培训课件模板
- 内部审计管理系统建设需求
- 员工绩效汇报
- 环卫所内勤工作事迹
- 注塑设备维修培训课件模板
- 燃气输配课程设计说明书
- 应急预案管理中的法律风险与责任防控
评论
0/150
提交评论