欢迎来到天天文库
浏览记录
ID:40188469
大小:614.50 KB
页数:22页
时间:2019-07-25
《完成修改员工信息功能》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Windows界面设计安徽机电职业技术学院 信息工程系任务7:完成修改员工信息功能学习目标:了解如何获取DataGridView选中行的数据。掌握如何在窗体间传递数据。进一步熟悉使用Command对象和Parameters对象操作数据库。本任务在任务6“将员工信息保存到数据库”基础上继续进行。27.1设计“修改员工信息”窗体由于“修改员工信息”窗体基本与“添加新员工”差不多,我们将FrmNewEmployee窗体复制过来,形成“副本FrmNewEmployee”。打开“副本FrmNewEmployee”窗体,将其名称修改为FrmEditEmployee,之后会有以下提示,记住一
2、定要选择“取消”。37.1设计“修改员工信息”窗体之后,作以下修改:Title属性:修改员工信息删去等控件删去控件47.2获取DataGridView中当前选中的行DataGridView控件的CurrentRow属性可以获取当前选中的行,其属性为DataGridViewRow。DataGridViewRow具有属性Cells,可以获取这一行的所有单元格集合。如Cells[0]可以获取第一个单元格对象(类型为DataGridViewCell)。DataGridViewCell具有Value属性,代表该单元格的值,类型为object。根据需要转换成该单元格的实际数据类型。//获取
3、选定员工的编号intempID=(int)grdEmployee.CurrentRow.Cells[0].Value;57.3将员工编号传递给“修改员工信息”窗体用户动作为:选中“员工列表”窗体某个员工所在行点击“修改员工”按钮在“修改员工信息”窗体显示所选员工详细信息修改完成后,点击“修改”按钮员工信息保存回数据库,“员工列表”窗体更新数据因此,“修改员工信息”窗体只需要读取选定员工的信息。如何将“员工列表”的员工号传递给“修改员工信息”窗体呢?使用类成员6定义类成员在FrmEditEmployee类,定义EmployeeID成员,该成员可以在类外部访问。如何定义?这样,可以
4、在“员工列表”窗体中按如下方式调用:FrmEditEmployeefrmEmp=newFrmEditEmployee();frmEmp.EmployeeID=empID;if(DialogResult.OK==frmEmp.ShowDialog()){dsEmployee.Clear();BindGrid();}publicpartialclassFrmEditEmployee:Form{publicintEmployeeID;77.4读取给定员工数据接下来,启动“修改员工信息”窗体,需要先将员工信息从数据库中读取,并在窗体控件中显示。往“员工列表”窗体添加SqlCommand
5、控件,命名为cmdSelectEmp。配置SqlCommand控件的Connection属性为SqlConnection1。使用查询生成器配置SqlCommand控件的CommandText属性为:SELECTEmployeeID,Name,LoginName,Password,Birthday,Email,DeptID,BasicSalary,Title,Telephone,SelfIntro,EmployeeLevel,PhotoImageFROMtblEmployeeWHERE(EmployeeID=@EmpID)8读取指定员工信息显示在窗体由于这里只需要读取一条数据库刻
6、录,因此只需要使用SqlDataReader类实现就可以了。定义SqlDataReader对象打开相应的数据库连接给SqlCommand的参数对象进行赋值System.Data.SqlClient.SqlDataReaderdr=null;cmdSelectEmp.Connection.Open();cmdSelectEmp.Parameters["@EmpID"].Value=EmployeeID;9读取指定员工信息显示在窗体使用SqlDataReader对象读取数据使用SqlCommand的ExecuteReader方法读取数据到SqlDataReader对象将读取的数据显
7、示在窗体的控件上关闭数据库连接dr=cmdSelectEmp.ExecuteReader();if(dr.Read()){txtName.Text=(string)dr["Name"];……}cmdSelectEmp.Connection.Close();10*读取照片数据读取照片数据时,SqlDataReader对象读的值是byte[]类型,需要转换为Image类型才能在PictureBox中显示。byte[]photobyte=dr["PhotoImage"]asbyte[];if(ph
此文档下载收益归作者所有