一:先看看解决方案资源管理器截图:

二:DepartmentDAL.cs源代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HRMSys.Model;
using System.Data;
using System.Data.SqlClient;namespace HRMSys.DAL
{public class DepartmentDAL{/// <summary>/// 将得到的表的形式转化为object对象字段的形式/// </summary>/// <param name="row"></param>/// <returns></returns>private Department ToModel(DataRow row){Department dept = new Department();dept.Id = (Guid)row["Id"];dept.Name = (string)row["Name"];dept.IsDelete=(bool) row["IsDelete"];return dept;}/// <summary>/// 显示所有未删除的部门信息/// </summary>/// <returns>以部门为对象的泛型集合</returns>public IEnumerable<Department> ListAll()//public List<Department> ListAll()
       {List<Department> list = new List<Department>();DataTable dt = sqlhelper.datatable("select * from T_Department where IsDelete=0");foreach (DataRow row in dt.Rows){Department dept = ToModel(row);list.Add(dept);}return list;}/// <summary>/// 得到指定id的部门/// </summary>/// <param name="id"></param>/// <returns>部门对象</returns>public Department GetById(Guid id){DataTable dt = sqlhelper.datatable("select * from T_Department where Id=@Id",new SqlParameter("@Id", id));if (dt.Rows.Count <= 0){return null;}else{return ToModel(dt.Rows[0]);}}/// <summary>/// 更新指定部门id的部门名字/// </summary>/// <param name="id"></param>/// <param name="name"></param>public void Update(Guid id, string name){sqlhelper.ExecuteNon(@"Update T_Department Set Name=@Name where Id=@Id",new SqlParameter("@Name", name), new SqlParameter("@Id", id));}/// <summary>/// 插入一条部门信息/// </summary>/// <param name="name"></param>public void Insert(string name){sqlhelper.ExecuteNon(@"Insert Into T_Department(Id,Name,IsDelete) values(newid(),@Name,0)",new SqlParameter("@Name", name));}/// <summary>/// 软删除指定部门id的部门/// </summary>/// <param name="id"></param>public void DeleteById(Guid id){sqlhelper.ExecuteNon(@"Update T_Department Set IsDelete=1 where Id=@Id",new SqlParameter("@Id", id));}}
}

View Code

三:EmployeeDAL.cs源代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HRMSys.Model;
using System.Data;
using System.Data.SqlClient;namespace HRMSys.DAL
{public class EmployeeDAL{/// <summary>/// 将表的列转换为EmployeeList对象的字段/// </summary>/// <param name="row"></param>/// <returns></returns>public EmployeeList ToEmployeeListModel(DataRow row){EmployeeList employee = new EmployeeList();employee.Address = (string)row["Address"];employee.BaseSalary = (int)row["BaseSalary"];employee.BirthDay = (DateTime)row["BirthDay"];employee.ContractEndDay = (DateTime)row["ContractEndDay"];employee.ContractStartDay = (DateTime)row["ContractStartDay"];employee.Department =GetNameByGuidDE( (Guid)row["DepartmentId"]);//
            employee.Education= GetNameByGuidID((Guid)row["EducationId"]);/////employee.Email = (string)row["Email"];employee.EmergencyContact = (string)sqlhelper.FromDbValue(row["EmergencyContact"]);employee.Gender = GetNameByGuidID((Guid)row["GenderId"]);///employee.Id = (Guid)row["Id"];employee.IdNum = (string)row["IdNum"];employee.InDate = (DateTime)row["InDate"];employee.Major = (string)sqlhelper.FromDbValue(row["Major"]);employee.Marriage = GetNameByGuidID((Guid)row["MarriageId"]);/
            employee.Name = (string)row["Name"];employee.Nationality = (string)row["Nationality"];employee.NativeAddr = (string)row["NativeAddr"];employee.Number = (string)row["Number"];employee.PartyStatus = GetNameByGuidID((Guid)row["PartyStatusId"]);//
            employee.Position = (string)row["Position"];employee.Remarks = (string)sqlhelper.FromDbValue(row["Remarks"]);employee.Resume = (string)sqlhelper.FromDbValue(row["Resume"]);employee.School = (string)sqlhelper.FromDbValue(row["School"]);employee.TelNum = (string)row["TelNum"];employee.IsStopped = (bool)row["IsStopped"];//todo:如果员工非常多,那么Photo会增加内存占用//employee.Photo = (byte[])sqlhelper.FromDbValue(row["Photo"]);return employee;}/// <summary>/// 将表转换为Employee对象的字段/// </summary>/// <param name="row"></param>/// <returns></returns>public Employee ToEmployeeModel(DataRow row){Employee employee = new Employee();employee.Address = (string)row["Address"];employee.BaseSalary = (int)row["BaseSalary"];employee.BirthDay = (DateTime)row["BirthDay"];employee.ContractEndDay = (DateTime)row["ContractEndDay"];employee.ContractStartDay = (DateTime)row["ContractStartDay"];employee.DepartmentId = (Guid)row["DepartmentId"];//
            employee.EducationId = (Guid)row["EducationId"];/////employee.Email = (string)row["Email"];employee.EmergencyContact = (string)sqlhelper.FromDbValue(row["EmergencyContact"]);employee.GenderId = (Guid)row["GenderId"];///employee.Id = (Guid)row["Id"];employee.IdNum = (string)row["IdNum"];employee.InDate = (DateTime)row["InDate"];employee.Major = (string)sqlhelper.FromDbValue(row["Major"]);employee.MarriageId = (Guid)row["MarriageId"];/
            employee.Name = (string)row["Name"];employee.Nationality = (string)row["Nationality"];employee.NativeAddr = (string)row["NativeAddr"];employee.Number = (string)row["Number"];employee.PartyStatusId = (Guid)row["PartyStatusId"];//
            employee.Position = (string)row["Position"];employee.Remarks = (string)sqlhelper.FromDbValue(row["Remarks"]);employee.Resume = (string)sqlhelper.FromDbValue(row["Resume"]);employee.School = (string)sqlhelper.FromDbValue(row["School"]);employee.TelNum = (string)row["TelNum"];employee.IsStopped = (bool)row["IsStopped"];//todo:如果员工非常多,那么Photo会增加内存占用//employee.Photo = (byte[])sqlhelper.FromDbValue(row["Photo"]);return employee;}/// <summary>/// 软删除指定id的员工信息/// </summary>/// <param name="id"></param>public void DeleteById(Guid id){//update T_Operator set IsLocked=@IsLocked  where Id=@Id"int i= sqlhelper.ExecuteNon("update T_Employee set IsStopped =1 where Id=@Id",new SqlParameter ("@Id",id));}/// <summary>/// 指定id从idname中取得名字/// </summary>/// <param name="id"></param>/// <returns></returns>public string GetNameByGuidID(Guid id){DataTable table= sqlhelper.datatable("select Name from T_IdName where Id=@Id",new SqlParameter("@Id",id));DataRow row = table.Rows[0];return (string) row["Name"];}/// <summary>/// 指定id从department中取得名字/// </summary>/// <param name="id"></param>/// <returns></returns>public string GetNameByGuidDE(Guid id){DataTable table = sqlhelper.datatable("select Name from T_Department where Id=@Id",new SqlParameter("@Id", id));DataRow row = table.Rows[0];return (string)row["Name"];}/// <summary>/// 得到所有未删除的员工的所有信息/// </summary>/// <returns>Employee数组</returns>public EmployeeList[] ListAll(){DataTable table = sqlhelper.datatable("select * from T_Employee where IsStopped=0");EmployeeList[] items = new EmployeeList[table.Rows.Count];for (int i = 0; i < table.Rows.Count; i++){EmployeeList employee = ToEmployeeListModel(table.Rows[i]);items[i] = employee;}return items;}/// <summary>/// 得到指定id的员工信息/// </summary>/// <param name="id"></param>/// <returns>Employee对象</returns>public Employee GetById(Guid id){DataTable table = sqlhelper.datatable("select * from T_Employee where Id=@Id",new SqlParameter("@Id", id));if (table.Rows.Count == 1){return ToEmployeeModel(table.Rows[0]);}else{throw new Exception();}}/// <summary>/// 插入一条员工数据/// </summary>/// <param name="employee"></param>public void Insert(Employee employee){sqlhelper.ExecuteNon(@"INSERT INTO [T_Employee]([Id],[Number],[Name],[BirthDay],[InDate],[MarriageId],[PartyStatusId],[Nationality],[NativeAddr],[EducationId],[Major],[School],[Address],[BaseSalary],[Email],[IdNum],[TelNum],[EmergencyContact],[DepartmentId],[Position],[ContractStartDay],[ContractEndDay],[Resume],[Remarks],[IsStopped],[GenderId])VALUES(newid(),@Number,@Name,@BirthDay,@InDate,@MarriageId,@PartyStatusId,@Nationality,@NativeAddr,@EducationId,@Major,@School,@Address,@BaseSalary,@Email,@IdNum,@TelNum,@EmergencyContact,@DepartmentId,@Position,@ContractStartDay,@ContractEndDay,@Resume,@Remarks,0,@GenderId)", new SqlParameter("@Number", employee.Number), new SqlParameter("@Name", employee.Name), new SqlParameter("@BirthDay", employee.BirthDay), new SqlParameter("@InDate", employee.InDate), new SqlParameter("@MarriageId", employee.MarriageId), new SqlParameter("@PartyStatusId", employee.PartyStatusId), new SqlParameter("@Nationality", employee.Nationality), new SqlParameter("@NativeAddr", employee.NativeAddr), new SqlParameter("@EducationId", employee.EducationId), new SqlParameter("@Major", sqlhelper.ToDbValue(employee.Major)), new SqlParameter("@School", sqlhelper.ToDbValue(employee.School)), new SqlParameter("@Address", employee.Address), new SqlParameter("@BaseSalary", employee.BaseSalary), new SqlParameter("@Email", sqlhelper.ToDbValue(employee.Email)), new SqlParameter("@IdNum", employee.IdNum), new SqlParameter("@TelNum", employee.TelNum), new SqlParameter("@EmergencyContact", sqlhelper.ToDbValue(employee.EmergencyContact)), new SqlParameter("@DepartmentId", employee.DepartmentId), new SqlParameter("@Position", employee.Position), new SqlParameter("@ContractStartDay", employee.ContractStartDay), new SqlParameter("@ContractEndDay", employee.ContractEndDay), new SqlParameter("@Resume", sqlhelper.ToDbValue(employee.Resume)), new SqlParameter("@Remarks", sqlhelper.ToDbValue(employee.Remarks)), new SqlParameter("@GenderId", employee.GenderId));}/// <summary>/// 更新一条员工数据数据/// </summary>/// <param name="employee"></param>public void Update(Employee employee){sqlhelper.ExecuteNon(@"Update T_Employee set [Number]=@Number,[Name]=@Name,[BirthDay]=@BirthDay,[InDate]=@InDate,[MarriageId]=@MarriageId,[PartyStatusId]=@PartyStatusId,[Nationality]=@Nationality,[NativeAddr]=@NativeAddr,[EducationId]=@EducationId,[Major]=@Major,[School]=@School,[Address]=@Address,[BaseSalary]=@BaseSalary,[Email]=@Email,[IdNum]=@IdNum,[TelNum]=@TelNum,[EmergencyContact]=@EmergencyContact,[DepartmentId]=@DepartmentId,[Position]=@Position,[ContractStartDay]=@ContractStartDay,[ContractEndDay]=@ContractEndDay,[Resume]=@Resume,[Remarks]=@Remarks,[GenderId]=@GenderIdWhere Id=@Id", new SqlParameter("@Number", employee.Number), new SqlParameter("@Name", employee.Name), new SqlParameter("@BirthDay", employee.BirthDay), new SqlParameter("@InDate", employee.InDate), new SqlParameter("@MarriageId", employee.MarriageId), new SqlParameter("@PartyStatusId", employee.PartyStatusId), new SqlParameter("@Nationality", employee.Nationality), new SqlParameter("@NativeAddr", employee.NativeAddr), new SqlParameter("@EducationId", employee.EducationId), new SqlParameter("@Major", sqlhelper.ToDbValue(employee.Major)), new SqlParameter("@School", sqlhelper.ToDbValue(employee.School)), new SqlParameter("@Address", employee.Address), new SqlParameter("@BaseSalary", employee.BaseSalary), new SqlParameter("@Email", sqlhelper.ToDbValue(employee.Email)), new SqlParameter("@IdNum", employee.IdNum), new SqlParameter("@TelNum", employee.TelNum), new SqlParameter("@EmergencyContact", sqlhelper.ToDbValue(employee.EmergencyContact)), new SqlParameter("@DepartmentId", employee.DepartmentId), new SqlParameter("@Position", employee.Position), new SqlParameter("@ContractStartDay", employee.ContractStartDay), new SqlParameter("@ContractEndDay", employee.ContractEndDay), new SqlParameter("@Resume", sqlhelper.ToDbValue(employee.Resume)), new SqlParameter("@Remarks", sqlhelper.ToDbValue(employee.Remarks)), new SqlParameter("@GenderId", employee.GenderId), new SqlParameter("@Id", employee.Id));}}}

View Code

四:IdNameDAL.cs源代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using HRMSys.Model;
using System.Data.SqlClient;
using System.Data;namespace HRMSys.DAL
{public class IdNameDAL{//按分类得到所要的数据public IdName[] GetByCategery(string categery){DataTable table=  sqlhelper.datatable("select Id,Name from T_IdName where Categery=@Categery",new SqlParameter("@Categery", categery));IdName[] idnam = new IdName[table.Rows.Count] ;for (int i = 0; i < table.Rows.Count; i++){DataRow row=table.Rows[i];IdName idname = new IdName();idname.Id=(Guid) row["Id"];idname.Name=(string)row["Name"];idnam[i] = idname;}return idnam;}}
}

五:sqlhelper.cs源代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;namespace HRMSys.DAL
{static class sqlhelper{static SqlConnection conn;static SqlCommand cmd;/// <summary>/// 返回受影响的行数/// </summary>public static readonly  string  constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;public static int ExecuteNon(string sql,params SqlParameter[] parameter ){using (conn = new SqlConnection(constr)){conn.Open();using ( cmd = conn.CreateCommand()){cmd.CommandText = sql;cmd.Parameters.AddRange(parameter);return cmd.ExecuteNonQuery();}}}/// <summary>///返回结果的首行首列/// </summary>/// <param name="sql"></param>/// <param name="parameter"></param>/// <returns></returns>public static int ExecuteSca(string sql, params SqlParameter[] parameter){using (conn = new SqlConnection(constr)){conn.Open();using (cmd = conn.CreateCommand()){cmd.CommandText = sql;cmd.Parameters.AddRange(parameter);int result = (int) cmd.ExecuteScalar();return result;}}}/// <summary>/// 返回一个数据流/// </summary>/// <param name="sql"></param>/// <param name="parameter"></param>/// <returns></returns>public static object SqldataRea(string sql, params SqlParameter[] parameter){using ( conn = new SqlConnection(constr)){conn.Open();using (cmd = conn.CreateCommand()){cmd.CommandText = sql;cmd.Parameters.AddRange(parameter);SqlDataReader sdr= sdr=cmd.ExecuteReader();return sdr;}}}/// <summary>/// 返回一个表/// </summary>/// <param name="sql"></param>/// <param name="parameter"></param>/// <returns></returns>public static DataTable datatable(string sql, params SqlParameter[] parameter){using ( conn = new SqlConnection(constr)){conn.Open();using (cmd = conn.CreateCommand()){cmd.CommandText = sql;cmd.Parameters.AddRange(parameter);SqlDataAdapter sda = new SqlDataAdapter(cmd);DataSet ds = new DataSet();sda.Fill(ds);return ds.Tables[0];}}}/// <summary>/// 可空的处理,将数据库的可空类型转换为vs里的可空类型/// </summary>/// <param name="value"></param>/// <returns></returns>public static object FromDbValue(object value){if (value == DBNull.Value){return null;}else{return value;}}/// <summary>/// 将vs里的可空类型转换为数据库里的可空类型/// </summary>/// <param name="value"></param>/// <returns></returns>public static object ToDbValue(object value){if (value == null){return DBNull.Value;}else{return value;}}}
}

View Code

六:Department.cs源代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace HRMSys.Model
{public class Department{public Guid Id { get; set; }public string Name { get; set; }public bool IsDelete { get; set; }}
}

七:Employee.cs源代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace HRMSys.Model
{public class Employee{public Guid Id{get;set;}/// <summary>/// 工号/// </summary>public string Number{get;set;}public string Name{get;set;}/// <summary>/// 性别Id/// </summary>public Guid GenderId{get;set;}//因为图片如果一次性读取到Model中会非常耗内存,因此需要的时候再去单独读取,不在Model中建字段/// <summary>/// 出生日期/// </summary>public DateTime BirthDay{get;set;}/// <summary>/// 入职日期/// </summary>public DateTime InDate{get;set;}/// <summary>/// 婚姻状态Id/// </summary>public Guid MarriageId{get;set;}/// <summary>/// 政治面貌Id/// </summary>public Guid PartyStatusId{get;set;}/// <summary>/// 民族/// </summary>public string Nationality{get;set;}/// <summary>/// 籍贯/// </summary>public string NativeAddr{get;set;}/// <summary>/// 教育程度Id/// </summary>public Guid EducationId{get;set;}/// <summary>/// 专业/// </summary>public string Major{get;set;}/// <summary>/// 毕业院校/// </summary>public string School{get;set;}/// <summary>/// 地址/// </summary>public string Address{get;set;}/// <summary>/// 基本工资/// </summary>public int BaseSalary{get;set;}/// <summary>/// Email/// </summary>public string Email{get;set;}/// <summary>/// 有效身份证号/// </summary>public string IdNum{get;set;}/// <summary>/// 联系电话/// </summary>public string TelNum{get;set;}/// <summary>/// 紧急联系人信息/// </summary>public string EmergencyContact{get;set;}/// <summary>/// 部门Id/// </summary>public Guid DepartmentId{get;set;}/// <summary>/// 职位/// </summary>public string Position{get;set;}/// <summary>/// 合同起始时间/// </summary>public DateTime ContractStartDay{get;set;}/// <summary>/// 合同到期时间/// </summary>public DateTime ContractEndDay{get;set;}/// <summary>/// 简历/// </summary>public string Resume{get;set;}/// <summary>/// 备注/// </summary>public string Remarks{get;set;}/// <summary>/// 照片/// </summary>//public byte[] Photo//{//    get;//    set;//}public bool IsStopped{get;set;}}
}

View Code

八:EmployeeList.cs源代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace HRMSys.Model
{public class EmployeeList{public Guid Id{get;set;}/// <summary>/// 工号/// </summary>public string Number{get;set;}public string Name{get;set;}/// <summary>/// 性别/// </summary>public string Gender{get;set;}//因为图片如果一次性读取到Model中会非常耗内存,因此需要的时候再去单独读取,不在Model中建字段/// <summary>/// 出生日期/// </summary>public DateTime BirthDay{get;set;}/// <summary>/// 入职日期/// </summary>public DateTime InDate{get;set;}/// <summary>/// 婚姻状态/// </summary>public string Marriage{get;set;}/// <summary>/// 政治面貌/// </summary>public string PartyStatus{get;set;}/// <summary>/// 民族/// </summary>public string Nationality{get;set;}/// <summary>/// 籍贯/// </summary>public string NativeAddr{get;set;}/// <summary>/// 教育程度/// </summary>public string Education{get;set;}/// <summary>/// 专业/// </summary>public string Major{get;set;}/// <summary>/// 毕业院校/// </summary>public string School{get;set;}/// <summary>/// 地址/// </summary>public string Address{get;set;}/// <summary>/// 基本工资/// </summary>public int BaseSalary{get;set;}/// <summary>/// Email/// </summary>public string Email{get;set;}/// <summary>/// 有效身份证号/// </summary>public string IdNum{get;set;}/// <summary>/// 联系电话/// </summary>public string TelNum{get;set;}/// <summary>/// 紧急联系人信息/// </summary>public string EmergencyContact{get;set;}/// <summary>/// 部门/// </summary>public string Department{get;set;}/// <summary>/// 职位/// </summary>public string Position{get;set;}/// <summary>/// 合同起始时间/// </summary>public DateTime ContractStartDay{get;set;}/// <summary>/// 合同到期时间/// </summary>public DateTime ContractEndDay{get;set;}/// <summary>/// 简历/// </summary>public string Resume{get;set;}/// <summary>/// 备注/// </summary>public string Remarks{get;set;}/// <summary>/// 照片/// </summary>//public byte[] Photo//{//    get;//    set;//}public bool IsStopped{get;set;}}
}

View Code

九:IdName.cs源代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace HRMSys.Model
{public class IdName{public Guid Id { get;set;}public string Name{get;set;}}
}

十:DeptEditWindow.cs源代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HRMSys.DAL;namespace HYMSys.UI.SystemMgr
{public partial class DeptEditWindow : Form{public DeptEditWindow(){InitializeComponent();}public bool IsAdd { get; set; }public Guid DepartmentId { get; set; }public bool load { get; set; }/// <summary>/// 保存/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button1_Click(object sender, EventArgs e){if (IsAdd == true){DepartmentDAL dal = new DepartmentDAL();dal.Insert(tb_Dename.Text);MessageBox.Show("插入成功");}else{DepartmentDAL dal = new DepartmentDAL();dal.Update(DepartmentId, tb_Dename.Text);MessageBox.Show("修改成功");}}/// <summary>/// 取消/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button2_Click(object sender, EventArgs e){DeptEditWindow ed = new DeptEditWindow();this.Close();}/// <summary>/// 窗口关闭设置刷新list窗口的参数为true/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void DeptEditWindow_FormClosing(object sender, FormClosingEventArgs e){load = true;}}
}

十一:DeptMgrWindow.cs源代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HRMSys.DAL;namespace HYMSys.UI.SystemMgr
{public partial class DeptMgrWindow : Form{public DeptMgrWindow(){InitializeComponent();}private void load(){DepartmentDAL de = new DepartmentDAL();dataGridView1.DataSource = de.ListAll();}/// <summary>/// 窗体自动加载部门信息/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void DeptMgrWindow_Load(object sender, EventArgs e){load();}/// <summary>/// 部门添加/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void toolsb_add_Click(object sender, EventArgs e){DeptEditWindow ed = new DeptEditWindow();ed.IsAdd = true;ed.ShowDialog();if (ed.load == true){//ed.load这个是刚新建的窗口的字段load();//这个是本类中的方法
            }}/// <summary>/// 部门删除/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void toolsb_delete_Click(object sender, EventArgs e){Guid id = (Guid)dataGridView1.CurrentRow.Cells[0].Value;string name = (string)dataGridView1.CurrentRow.Cells[1].Value;DepartmentDAL da = new DepartmentDAL();//MessageBox.Show("真的要删除--"+name+"--吗?","警告!",MessageBoxButtons.OKCancel)==DialogResult.Yes)是Yes将始终不成立,不会删除if (MessageBox.Show("真的要删除--"+name+"--吗?","警告!",MessageBoxButtons.OKCancel)==DialogResult.OK){da.DeleteById(id);load();MessageBox.Show(name+"已删除");}}/// <summary>/// 部门修改/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void toolsb_edit_Click(object sender, EventArgs e){DeptEditWindow ed = new DeptEditWindow();ed.DepartmentId=(Guid)dataGridView1.CurrentRow.Cells[0].Value;ed.IsAdd = false;ed.ShowDialog();if (ed.load == true){load();}}}
}

View Code

十二:EmployeeEditWindow.cs源代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HRMSys.DAL;
using HRMSys.Model;namespace HYMSys.UI.EmployeeMgr//不要将文件夹的名字写的和model的名字一样,这样就将命名空间和model重名了
{public partial class EmployeeEditWindow : Form{public EmployeeEditWindow(){InitializeComponent();}public bool IsAdd { get; set; }public Guid EditId { get; set; }public bool IsLoad { get; set; }public bool IsSave { get; set; }Employee em = new Employee();//得到有默认值的tb的text长度int number;/// <summary>/// 绑定数据/// </summary>public void binding(){DepartmentDAL dal = new DepartmentDAL();IdNameDAL idName = new IdNameDAL();cb_EducationId.DataSource = idName.GetByCategery("学历");cb_GenderId.DataSource = idName.GetByCategery("性别");cb_MarriageId.DataSource = idName.GetByCategery("婚姻状况");cb_PartyStatusId.DataSource = idName.GetByCategery("政治面貌");cb_DepartmentId.DataSource = dal.ListAll();IsSave = true;//部门idcb_DepartmentId.DisplayMember = "Name";cb_DepartmentId.ValueMember = "Id";if (em.DepartmentId != null)cb_DepartmentId.SelectedValue = em.DepartmentId;//学历idcb_EducationId.DisplayMember = "Name";cb_EducationId.ValueMember = "Id";if (em.DepartmentId != null)//如果不为空将选择好的数据绑定上cb_EducationId.SelectedValue = em.EducationId;//性别idcb_GenderId.DisplayMember = "Name";cb_GenderId.ValueMember = "Id";if (em.DepartmentId != null)cb_GenderId.SelectedValue = em.GenderId;//婚姻状况idcb_MarriageId.DisplayMember = "Name";cb_MarriageId.ValueMember = "Id";if (em.DepartmentId != null)cb_MarriageId.SelectedValue = em.MarriageId;//政治面貌idcb_PartyStatusId.DisplayMember = "Name";cb_PartyStatusId.ValueMember = "Id";if (em.DepartmentId != null)cb_PartyStatusId.SelectedValue = em.PartyStatusId;//其他的数据绑定tb_Address.DataBindings.Add("Text", em, "Address", false, DataSourceUpdateMode.OnPropertyChanged);tb_BaseSalary.DataBindings.Add("Text", em, "BaseSalary", false, DataSourceUpdateMode.OnPropertyChanged);dtp_BirthDay.DataBindings.Add("Value", em, "BirthDay", true, DataSourceUpdateMode.OnPropertyChanged);dtp_ContractEndDay.DataBindings.Add("Value", em, "ContractEndDay", true, DataSourceUpdateMode.OnPropertyChanged);dtp_ContractStartDay.DataBindings.Add("Value", em, "ContractStartDay", true, DataSourceUpdateMode.OnPropertyChanged);//dtp_ContractStartDay.DataBindings.Add("Value", em, "ContractStartDay", true);tb_Email.DataBindings.Add("Text", em, "Email", false, DataSourceUpdateMode.OnPropertyChanged);tb_EmergencyContact.DataBindings.Add("Text", em, "EmergencyContact", false, DataSourceUpdateMode.OnPropertyChanged);tb_IdNum.DataBindings.Add("Text", em, "IdNum", false, DataSourceUpdateMode.OnPropertyChanged);dtp_Indate.DataBindings.Add("Value", em, "InDate", true, DataSourceUpdateMode.OnPropertyChanged);tb_Major.DataBindings.Add("Text", em, "Major", false, DataSourceUpdateMode.OnPropertyChanged);tb_Name.DataBindings.Add("Text", em, "Name", false, DataSourceUpdateMode.OnPropertyChanged);tb_Nationality.DataBindings.Add("Text", em, "Nationality", false, DataSourceUpdateMode.OnPropertyChanged);tb_NativeAddr.DataBindings.Add("Text", em, "NativeAddr", false, DataSourceUpdateMode.OnPropertyChanged);tb_Number.DataBindings.Add("Text", em, "Number", false, DataSourceUpdateMode.OnPropertyChanged);//pb_Photo.DataBindings.Add(new Binding("pb_Photo", em, "Photo", true));tb_Position.DataBindings.Add("Text", em, "Position", false, DataSourceUpdateMode.OnPropertyChanged);tb_Remarks.DataBindings.Add("Text", em, "Remarks", false, DataSourceUpdateMode.OnPropertyChanged);//tabControl1.TabPages[2].DataBindings.Add("Text", em, "Resume", true, DataSourceUpdateMode.OnPropertyChanged);tb_school.DataBindings.Add("Text", em, "School", false, DataSourceUpdateMode.OnPropertyChanged);tb_TelNum.DataBindings.Add("Text", em, "TelNum", false, DataSourceUpdateMode.OnPropertyChanged);}/// <summary>/// 窗口关闭时将刷新置为true/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void EmployeeEditWindow_FormClosing(object sender, FormClosingEventArgs e){IsLoad = true;}/// <summary>/// 添加时自动载入默认值,数据绑定和初始化/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void EmployeeEditWindow_Load(object sender, EventArgs e){if (IsAdd==true){#region//combobox的数据绑定
                binding();//将合同到期日在今天的基础上加1年dtp_ContractEndDay.Value = DateTime.Now.AddYears(1);dtp_BirthDay.Value = DateTime.Now.AddYears(-24);dtp_ContractStartDay.Value = DateTime.Now;dtp_Indate.Value = DateTime.Now;tb_Nationality.Text = "汉族";tb_BaseSalary.Text = "3000";tb_Email.Text = "@qq.com";tb_Number.Text = "HMJ";number = tb_Number.Text.Length;#endregion}else{Employee list = new Employee();EmployeeDAL dal = new EmployeeDAL();list = dal.GetById(EditId);em = list;binding();}}/// <summary>/// textboxToRed将背景颜色变红/// </summary>/// <param name="tb"></param>private void textboxToRed(TextBox tb,int length){if (tb.Text.Length <= length){tb.BackColor = Color.Red;//将背景变为红色IsSave = false;}else{tb.BackColor = DefaultBackColor;//将背景置为默认颜色
            }}/// <summary>/// ComboxToRed将背景颜色变红/// </summary>/// <param name="tb"></param>private void ComboxToRed(ComboBox cb){if (cb.Text.Length <= 0){cb.BackColor = Color.Red;//将背景变为红色IsSave = false;}else{cb.BackColor = DefaultBackColor;//将背景置为默认颜色
            }}/// <summary>/// 保存/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button1_Click(object sender, EventArgs e){if (IsAdd){#region//检查必填项,如果为空显示为红色textboxToRed(tb_Address, 0);textboxToRed(tb_IdNum, 0);textboxToRed(tb_Name, 0);textboxToRed(tb_Number, number);//工号和默认值长度比较textboxToRed(tb_Position, 0);textboxToRed(tb_TelNum, 0);textboxToRed(tb_NativeAddr, 0);ComboxToRed(cb_DepartmentId);ComboxToRed(cb_EducationId);ComboxToRed(cb_GenderId);ComboxToRed(cb_MarriageId);ComboxToRed(cb_PartyStatusId);//这里不用再赋值,已经绑定了,怎么将外键id显示为对应的名字呢?cb_PartyStatusId.SelectedValue = em.PartyStatusId;#region//EmployeeDAL dal = new EmployeeDAL();//Employee em = new Employee();//em.EducationId = cb_EducationId.ValueMember;////em.Address = tb_Address.Text;//em.BaseSalary = Convert.ToInt32(tb_BaseSalary.Text);//em.BirthDay = dtp_BirthDay.Value;//em.ContractEndDay = dtp_ContractEndDay.Value;//em.ContractStartDay = dtp_ContractStartDay.Value;//em.DepartmentId = cb_DepartmentId.ValueMember;//em.Email = tb_Email.Text;//em.EmergencyContact = tb_EmergencyContact.Text;//em.GenderId = cb_GenderId.ValueMember;////em.Id=不用输的//em.IdNum = tb_IdNum.Text;//em.InDate = dtp_Indate.Value;//em.Major = tb_Major.Text;//em.MarriageId = cb_MarriageId.ValueMember;//要转换为guid婚姻//em.Name = tb_Name.Text;//em.Nationality = tb_Nationality.Text;//em.NativeAddr = tb_NativeAddr.Text;//em.Number = tb_Number.Text;//em.PartyStatusId = cb_PartyStatusId.ValueMember;//em.Photo = pb_Photo;//em.Position = tb_Position.Text;//em.Remarks = tb_Remarks.Text;//em.Resume = tabControl1.TabPages[2].ToString();//简历//em.School = tb_school.Text;//em.TelNum = tb_TelNum.Text;#endregionif (IsSave == true){EmployeeDAL darl = new EmployeeDAL();//将数据结果给object对象em.DepartmentId = (Guid)cb_DepartmentId.SelectedValue;em.EducationId = (Guid)cb_EducationId.SelectedValue;em.GenderId = (Guid)cb_GenderId.SelectedValue;em.MarriageId = (Guid)cb_MarriageId.SelectedValue;em.PartyStatusId = (Guid)cb_PartyStatusId.SelectedValue;darl.Insert(em);MessageBox.Show("成功插入一条员工数据");IsLoad = true;}#endregion}else {EmployeeDAL dal = new EmployeeDAL();dal.Update(em);MessageBox.Show("更改成功!");}}}
}

View Code

十三:EmployeeListWindow.cs源代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using HRMSys.DAL;
using HRMSys.Model;namespace HYMSys.UI.EmployeeMgr
{public partial class EmployeeListWindow : Form{public EmployeeListWindow(){InitializeComponent();}/// <summary>/// 加载所有信息/// </summary>public EmployeeList[] load(){EmployeeDAL de = new EmployeeDAL();return de.ListAll();}/// <summary>/// 添加员工/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void toolsb_add_Click(object sender, EventArgs e){EmployeeEditWindow edit = new EmployeeEditWindow();edit.IsAdd = true;edit.ShowDialog();if (edit.IsLoad == true){dataGridView1.DataSource = load();}}/// <summary>/// 删除员工/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void toolsb_delete_Click(object sender, EventArgs e){Guid id=(Guid)dataGridView1.CurrentRow.Cells[1].Value;string name=(string)dataGridView1.CurrentRow.Cells[3].Value;if (MessageBox.Show("真的要删除---"+name+"---吗?","警告!",MessageBoxButtons.OKCancel)==DialogResult.OK){EmployeeDAL dal = new EmployeeDAL();dal.DeleteById(id);dataGridView1.DataSource = load();}}/// <summary>/// 修改员工信息/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void toolsb_edit_Click(object sender, EventArgs e){EmployeeEditWindow edit = new EmployeeEditWindow();edit.EditId = (Guid)dataGridView1.CurrentRow.Cells[1].Value;edit.IsAdd = false;edit.ShowDialog();if (edit.IsLoad == true){dataGridView1.DataSource = load();}}/// <summary>/// 自动加载所有员工信息/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void EmployeeListWindow_Load(object sender, EventArgs e){dataGridView1.DataSource= load();}}
}

View Code

十四:作品图

转载于:https://www.cnblogs.com/hongmaju/p/3634487.html

员工修改添加,部门修改添加相关推荐

  1. EF CORE 一对多、多对多添加、修改

    创建.net core 控制台应用程序: 项目文件结构: 添加如下NuGet包: Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore ...

  2. Quartz动态添加、修改和删除定时任务

    2019独角兽企业重金招聘Python工程师标准>>> Quartz动态添加.修改和删除定时任务 转载于:https://my.oschina.net/haokevin/blog/1 ...

  3. IIS环境下如何批量添加、修改、删除绑定的域名

    IIS环境下如何批量添加和修改所绑定域名 1.关闭IISADMIN服务和W3SVC服务,可以从服务里面关闭,也可以直接执行命令:net stop iisadmin /y: 2.打开"C:\W ...

  4. 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(7.2) 模块管理,模块的添加、修改、删除...

    索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们来做模块管理的 添加.修改.删除 项目准备 我们用的工具是:VS 2013 + SqlSer ...

  5. mysql 删除 修改数据库语句_数据库——添加,修改,删除

    需要执行的SQL语句: 数据库中对数据进行的添加.修改和删除操作均属于数据库操纵语言(DML),这类类型的SQL语句只有执行数据控制语言(DCL)中的commit才能使之起作用,DCL语言中的roll ...

  6. SQL语句添加删除修改字段

    用SQL语句添加删除修改字段 1.增加字段      alter table docdsp    add dspcode char(200) 2.删除字段      ALTER TABLE table ...

  7. Js操作表格-对表格单元格的添加删除修改

    动态表格 动态表格彻底研究 对表格单元格的添加删除修改并对其进行移动以及拷贝等操作,是目前应用开发中常用的技术 1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 55 5 6 6 6 ...

  8. dede 会员中心编辑添加和修改图集的时候自定义的字段模型显示不出来的问题...

    2019独角兽企业重金招聘Python工程师标准>>> 添加的好解决,因为只需要在模板里album_add.htm添加 <?php PrintAutoFieldsAdd($cI ...

  9. 用SQL语句添加删除修改字段、一些表与字段的基本操作、数据库备份等

    用SQL语句添加删除修改字段 1.增加字段 alter table docdsp add dspcode char(200) 2.删除字段 ALTER TABLE table_NAME DROP CO ...

最新文章

  1. 「Excel技巧」Excel技巧之如何看文件里的宏?
  2. uniapp自定义顶部导航组件
  3. sqlserver 中统计信息语句
  4. linux pro*c环境配置,打造ubuntu下精简版的oracle客户端及pro*c编译环境
  5. linux内核make menuconfig执行过程
  6. 开源等于免费吗?用事实来说话
  7. Outlook简单配置
  8. vector向量容器元素排序与查找
  9. 《R语言数据分析》——导读
  10. 简单方法解决bootstrap3 modal异步加载只一次的问题
  11. 拉普拉斯平滑(Laplacian smoothing)
  12. PS-怎么使用参考线?
  13. 历年考研计算机专业国家线,历年工学考研国家线一览_考研国家线公布时间
  14. 网易云音乐歌单生成外链播放器
  15. 沙漏型悬浮芯体纸尿裤,爱宝宝就选择它
  16. 5G通信技术解读:波束成形如何为5G添翼?
  17. 学习编程前需要知道什么?
  18. JSF 标签大全(非常详细 有例子)
  19. 1.电磁波传播原理,慢衰落、快衰落、阴影效应、多径传播、多普勒效应、塔下黑。
  20. 以社交活动的方式做计划-乐高公司的规模化敏捷

热门文章

  1. 在Mac电脑的状态栏右上角显示自己的名字
  2. catia螺纹孔在二维图上不显示_请问Solidworks2018的螺纹孔我选中了装饰螺纹线,立体图里怎么没有显示螺纹线呢谢谢...
  3. 山西移动E900V21E_S905L3_线刷固件包
  4. sap服务器迁移性能问题,专家详解SAP数据迁移的六个方法
  5. 2019上半年信息系统项目管理师-综合知识(简练整理解析)
  6. 京东某被裁员工:虽然公司裁掉了我,但我不能裁掉我的未来!
  7. Spring框架下载最新地址
  8. 使用vagrant搭建三台虚拟机环境
  9. 苹果电脑如何设置开启远程控制?
  10. 如何优雅地测量一只猫的体积,而不使其感到惊恐或受到伤害?