/// <summary>
        /// 获得储备人才的数据集
        /// </summary>
        /// <returns>返回储备人才集合</returns>
        HR_TrainEmploye GetTrainEmployeData()
        {
            HR_TrainEmploye trainEmploye = new HR_TrainEmploye();

            trainEmploye.Address        = txtAddress.Text.Trim();
            trainEmploye.Age            = Convert.ToInt32(numAge.Value);
            trainEmploye.Birthday       = dtpBirthday.Value;
            trainEmploye.Birthplace     = txtBirthplace.Text;
            trainEmploye.College        = txtCollege.Text.Trim();
            trainEmploye.ComputerLevel  = txtComputerLevel.Text.Trim();
            trainEmploye.DesiredSalary  = numDesiredSalary.Value;
            trainEmploye.EducatedDegree = txtEducatedDegree.Text.Trim();
            trainEmploye.EducatedMajor  = txtEducatedMajor.Text.Trim();
            trainEmploye.EmergencyPhone = txtEmergencyPhone.Text.Trim();
            trainEmploye.EnglishLevel   = txtEnglishLevel.Text.Trim();
            trainEmploye.Evaluate       = txtEvaluate.Text.Trim();
            trainEmploye.ResumeStatus   = cmbResumeStatus.Text;
            trainEmploye.Height         = numHeight.Value;
            trainEmploye.ID_Card        = txtCard.Text.Trim();

            if (dtpInterviewDate.Checked)
            {
                trainEmploye.InterviewDate = dtpInterviewDate.Value;
            }

            trainEmploye.IsThirdParty  = cbIsThirdParty.Checked;
            trainEmploye.JobYears      = Convert.ToInt32(numJobYears.Value);
            trainEmploye.MaritalStatus = cmbMaritalStatus.Text;
            trainEmploye.Name          = txtName.Text;
            trainEmploye.Nationality   = txtNationality.Text.Trim();
            trainEmploye.Party         = txtParty.Text;
            trainEmploye.PersonType    = cmbPersonType.Text;
            trainEmploye.Phone         = txtPhone.Text;
            trainEmploye.Sex           = cmbSex.Text;
            trainEmploye.Race          = txtRace.Text;
            trainEmploye.RecruitType   = cmbRecruitType.Text;
            trainEmploye.Speciality    = txtSpeciality.Text.Trim();
            trainEmploye.TakeJobDate   = dtpTakeJobDate.Value;
            trainEmploye.ThirdParty    = txtThirdParty.Text.Trim();

            if (picbyte != null)
            {
                trainEmploye.Anne     = picbyte;
                trainEmploye.FileName = pathName;
            }

            trainEmploye.Recorder   = BasicInfo.LoginID;
            trainEmploye.RecordTime = ServerTime.Time;
            trainEmploye.Remark     = txtRemark.Text;

            return(trainEmploye);
        }
        /// <summary>
        /// 绑定控件
        /// </summary>
        private void BindControl()
        {
            HR_TrainEmploye trainEmploye = m_trainEmployeServer.GetInfoByID(m_id, out m_error);

            txtAddress.Text        = trainEmploye.Address;
            numAge.Value           = Convert.ToDecimal(trainEmploye.Age);
            dtpBirthday.Value      = Convert.ToDateTime(trainEmploye.Birthday);
            txtBirthplace.Text     = trainEmploye.Birthplace;
            txtCollege.Text        = trainEmploye.College;
            txtComputerLevel.Text  = trainEmploye.ComputerLevel;
            numDesiredSalary.Value = Convert.ToDecimal(trainEmploye.DesiredSalary);
            txtEducatedDegree.Text = trainEmploye.EducatedDegree;
            txtEducatedMajor.Text  = trainEmploye.EducatedMajor;
            txtEmergencyPhone.Text = trainEmploye.EmergencyPhone;
            txtEnglishLevel.Text   = trainEmploye.EnglishLevel;
            txtEvaluate.Text       = trainEmploye.Evaluate;
            cmbResumeStatus.Text   = trainEmploye.ResumeStatus;
            numHeight.Value        = Convert.ToDecimal(trainEmploye.Height);
            txtCard.Text           = trainEmploye.ID_Card;
            txtPhone.Text          = trainEmploye.Phone;

            if (trainEmploye.InterviewDate != null)
            {
                dtpInterviewDate.Value = Convert.ToDateTime(trainEmploye.InterviewDate);
            }

            cbIsThirdParty.Checked = Convert.ToBoolean(trainEmploye.IsThirdParty);
            numJobYears.Value      = Convert.ToDecimal(trainEmploye.JobYears);
            cmbMaritalStatus.Text  = trainEmploye.MaritalStatus;
            txtName.Text           = trainEmploye.Name;
            txtNationality.Text    = trainEmploye.Nationality;
            txtParty.Text          = trainEmploye.Party;
            cmbPersonType.Text     = trainEmploye.PersonType;
            cmbSex.Text            = trainEmploye.Sex;
            txtRace.Text           = trainEmploye.Race;
            cmbRecruitType.Text    = trainEmploye.RecruitType;
            txtSpeciality.Text     = trainEmploye.Speciality;
            dtpTakeJobDate.Value   = Convert.ToDateTime(trainEmploye.TakeJobDate);
            txtThirdParty.Text     = trainEmploye.ThirdParty;

            if (trainEmploye.Anne != null)
            {
                picbyte           = trainEmploye.Anne == null ? null : trainEmploye.Anne.ToArray();
                lblAnnxeName.Text = trainEmploye.FileName;
            }

            txtRemark.Text = trainEmploye.Remark;

            DataTable dtWorkHistory = m_trainEmployeServer.GetWorkHistory(m_id);

            if (dtWorkHistory != null && dtWorkHistory.Rows.Count > 0)
            {
                dgvWorkHistory.DataSource = dtWorkHistory;

                if (dgvWorkHistory.Rows.Count > 0)
                {
                    dgvWorkHistory.Columns["编号"].Visible = false;
                }
            }

            DataTable dtEducated = m_trainEmployeServer.GetEducatedHistory(m_id);

            if (dtEducated != null && dtEducated.Rows.Count > 0)
            {
                dgvEducatedHistory.DataSource = dtEducated;

                if (dgvEducatedHistory.Rows.Count > 0)
                {
                    dgvEducatedHistory.Columns["编号2"].Visible = false;
                }
            }

            DataTable dtFamilyMember = m_trainEmployeServer.GetFamilyMember(m_id);

            if (dtFamilyMember != null && dtFamilyMember.Rows.Count > 0)
            {
                dgvFamilyMember.DataSource = dtFamilyMember;

                if (dgvFamilyMember.Rows.Count > 0)
                {
                    dgvFamilyMember.Columns["编号3"].Visible = false;
                }
            }
        }
        /// <summary>
        /// 修改储备人才信息
        /// </summary>
        /// <param name="trainEmploye">储备人才数据集</param>
        /// <param name="workHistory">工作经验</param>
        /// <param name="edeucate">教育经历</param>
        /// <param name="family">家庭成员</param>
        /// <param name="id">id</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回true,失败返回False</returns>
        public bool UpdateTrainEmploye(HR_TrainEmploye trainEmploye, List <HR_WorkHistory> workHistory,
                                       List <HR_EducatedHistory> edeucate, List <HR_FamilyMember> family, int id, out string error)
        {
            error = "";

            try
            {
                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                var result = from a in dataContxt.HR_TrainEmploye
                             where a.ID == id
                             select a;

                if (result.Count() != 1)
                {
                    error = "信息有误,请查证后再操作!";
                    return(false);
                }
                else
                {
                    HR_TrainEmploye trainEmployeList = result.Single();

                    trainEmployeList.Address        = trainEmploye.Address;
                    trainEmployeList.Age            = trainEmploye.Age;
                    trainEmployeList.Anne           = trainEmploye.Anne;
                    trainEmployeList.Birthday       = trainEmploye.Birthday;
                    trainEmployeList.Birthplace     = trainEmploye.Birthplace;
                    trainEmployeList.College        = trainEmploye.College;
                    trainEmployeList.ComputerLevel  = trainEmploye.ComputerLevel;
                    trainEmployeList.DesiredSalary  = trainEmploye.DesiredSalary;
                    trainEmployeList.EducatedDegree = trainEmploye.EducatedDegree;
                    trainEmployeList.EducatedMajor  = trainEmploye.EducatedMajor;
                    trainEmployeList.EmergencyPhone = trainEmploye.EmergencyPhone;
                    trainEmployeList.EnglishLevel   = trainEmploye.EnglishLevel;
                    trainEmployeList.Evaluate       = trainEmploye.Evaluate;
                    trainEmployeList.FileName       = trainEmploye.FileName;
                    trainEmployeList.Height         = trainEmploye.Height;
                    trainEmployeList.ID_Card        = trainEmploye.ID_Card;
                    trainEmployeList.InterviewDate  = trainEmploye.InterviewDate;
                    trainEmployeList.IsThirdParty   = trainEmploye.IsThirdParty;
                    trainEmployeList.JobYears       = trainEmploye.JobYears;
                    trainEmployeList.MaritalStatus  = trainEmploye.MaritalStatus;
                    trainEmployeList.Name           = trainEmploye.Name;
                    trainEmployeList.Nationality    = trainEmploye.Nationality;
                    trainEmployeList.Party          = trainEmploye.Party;
                    trainEmployeList.PersonType     = trainEmploye.PersonType;
                    trainEmployeList.Phone          = trainEmploye.Phone;
                    trainEmployeList.Race           = trainEmploye.Race;
                    trainEmployeList.Recorder       = trainEmploye.Recorder;
                    trainEmployeList.RecordTime     = trainEmploye.RecordTime;
                    trainEmployeList.RecruitType    = trainEmploye.RecruitType;
                    trainEmployeList.Remark         = trainEmploye.Remark;
                    trainEmployeList.ResumeStatus   = trainEmploye.ResumeStatus;
                    trainEmployeList.Sex            = trainEmploye.Sex;
                    trainEmployeList.Speciality     = trainEmploye.Speciality;
                    trainEmployeList.TakeJobDate    = trainEmploye.TakeJobDate;
                    trainEmployeList.ThirdParty     = trainEmploye.ThirdParty;
                }

                var resultList = from c in dataContxt.HR_WorkHistory
                                 where c.EmployeID == id
                                 select c;

                if (resultList.Count() > 0)
                {
                    dataContxt.HR_WorkHistory.DeleteAllOnSubmit(resultList);
                }

                foreach (var item in workHistory)
                {
                    item.EmployeID = id;

                    dataContxt.HR_WorkHistory.InsertOnSubmit(item);
                }

                var resultEducated = from e in dataContxt.HR_EducatedHistory
                                     where e.EmployeID == id
                                     select e;

                if (resultEducated.Count() > 0)
                {
                    dataContxt.HR_EducatedHistory.DeleteAllOnSubmit(resultEducated);
                }

                foreach (var item in edeucate)
                {
                    item.EmployeID = id;

                    dataContxt.HR_EducatedHistory.InsertOnSubmit(item);
                }

                var resultFamily = from f in dataContxt.HR_FamilyMember
                                   where f.EmployeID == id
                                   select f;

                if (resultFamily.Count() > 0)
                {
                    dataContxt.HR_FamilyMember.DeleteAllOnSubmit(resultFamily);
                }

                foreach (var item in family)
                {
                    item.EmployeID = id;

                    dataContxt.HR_FamilyMember.InsertOnSubmit(item);
                }

                dataContxt.SubmitChanges();
                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }
        /// <summary>
        /// 添加储备人才信息
        /// </summary>
        /// <param name="trainEmploye">储备人才数据集</param>
        /// <param name="edeucate">教育经历</param>
        /// <param name="family">家庭成员</param>
        /// <param name="workHistory">工作经验</param>
        /// <param name="error">错误信息</param>
        /// <returns>成功返回True,失败返回False</returns>
        public bool AddTrainEmploye(HR_TrainEmploye trainEmploye, List <HR_WorkHistory> workHistory,
                                    List <HR_EducatedHistory> edeucate, List <HR_FamilyMember> family, out string error)
        {
            error = "";
            int id = 0;

            try
            {
                DepotManagementDataContext dataContxt = CommentParameter.DepotDataContext;

                var result = from a in dataContxt.HR_TrainEmploye
                             where a.ID_Card == trainEmploye.ID_Card
                             select a;

                if (result.Count() == 0)
                {
                    dataContxt.HR_TrainEmploye.InsertOnSubmit(trainEmploye);
                    dataContxt.SubmitChanges();
                }
                else
                {
                    error = "身份证为【" + trainEmploye.ID_Card + "】,姓名叫【" + trainEmploye.Name + "】的人员已经存在!";
                    return(false);
                }

                var resultList = from a in dataContxt.HR_TrainEmploye
                                 where a.ID_Card == trainEmploye.ID_Card
                                 select a;

                if (resultList.Count() == 1)
                {
                    id = resultList.Single().ID;

                    foreach (var item in workHistory)
                    {
                        item.EmployeID = id;

                        dataContxt.HR_WorkHistory.InsertOnSubmit(item);
                    }

                    foreach (var item in edeucate)
                    {
                        item.EmployeID = id;

                        dataContxt.HR_EducatedHistory.InsertOnSubmit(item);
                    }

                    foreach (var item in family)
                    {
                        item.EmployeID = id;

                        dataContxt.HR_FamilyMember.InsertOnSubmit(item);
                    }

                    dataContxt.SubmitChanges();
                }

                return(true);
            }
            catch (Exception ex)
            {
                error = ex.Message;
                return(false);
            }
        }