private string GetEmployeePosition(int empId) { using (DBConteiner db = new DBConteiner()) { try { //EmployeeSubDivs emp = db.EmployeeSubDivisions.Where(e => e.Employee.Id == empId).FirstOrDefault(); EmployeeSubDivs emp = db.EmployeeSubDivisions.Find(new EmployeeSubDivs() { EmployeeSubDivsId = empId }.EmployeeSubDivsId); return(emp.Position); } catch (ArgumentNullException ex) { MessageBox.Show(ex.Message); } catch (OverflowException ex) { MessageBox.Show(ex.Message); } catch (System.Data.SqlClient.SqlException ex) { MessageBox.Show(ex.Message); } catch (System.Data.Entity.Core.EntityCommandExecutionException ex) { MessageBox.Show(ex.Message); } catch (System.Data.Entity.Core.EntityException ex) { MessageBox.Show(ex.Message); } } return(null); }
private void SaveNewEmployeeData() { using (DBConteiner db = new DBConteiner()) { try { // db.Entry(TransferSubDivision).State = EntityState.Modified; if (editEmployee) { SelectedEmployee = db.Employees.Where(e => e.EmployeeId == SelectedEmployee.EmployeeId).FirstOrDefault(); } //else // db.Employees.Attach(SelectedEmployee); SelectedEmployee.EmpName = textBox_Name.Text; SelectedEmployee.EmpSurName = textBox_Surname.Text; SelectedEmployee.EmpPatronimic = textBox_Patronimic.Text; if (radioButton_male.Checked) { SelectedEmployee.Sex = true; } if (radioButton_female.Checked) { SelectedEmployee.Sex = false; } SelectedEmployee.DateBirth = dateTimePicker_BirthDate.Value; SelectedEmployee.BirthPlace = richTextBox_BirthPlace.Text; SelectedEmployee.INN = textBox_INN.Text; SelectedEmployee.TabNumber = textBox_TabNumber.Text; SelectedEmployee.StartDateWork = dateTimePicker_StartDateWork.Value; if (checkBox_Fired.Checked) { SelectedEmployee.FireDate = dateTimePicker_FireDate.Value; SelectedEmployee.FireReason = richTextBox1.Text; } //кастыли, которые не также не работают, но если их применить, то получаем //дублирование название подразделения в БД. Что говорит о том, что нужно как-то умудриться //подифицировать это подразделение.. Пока - хз как. Т.к. связ подразделения и сотрудника у нас //посрдедством n - n, и с какого-то хера из подразделения не видно сотрудника, хотя и все //нужные поля - публичные . жопа кароч //db.Configuration.AutoDetectChangesEnabled = false; //db.Configuration.ValidateOnSaveEnabled = false; if (editEmployee) { db.Entry(SelectedEmployee).State = EntityState.Modified; } else { db.Employees.Add(SelectedEmployee); } db.SaveChanges(); EmployeeSubDivs empSabDiv = new EmployeeSubDivs(); empSabDiv.Employee = SelectedEmployee; empSabDiv.SubDivision = TransferSubDivision; empSabDiv.Position = textBox_EmpPosition.Text; empSabDiv.TransferDate = dateTimePicker_StartDateWork.Value; db.EmployeeSubDivisions.Add(empSabDiv); db.SaveChanges(); MessageBox.Show("Данные сохранены"); } catch (ArgumentNullException ex) { MessageBox.Show(ex.Message); } catch (OverflowException ex) { MessageBox.Show(ex.Message); } catch (System.Data.SqlClient.SqlException ex) { MessageBox.Show(ex.Message); } catch (System.Data.Entity.Core.EntityCommandExecutionException ex) { MessageBox.Show(ex.Message); } catch (System.Data.Entity.Core.EntityException ex) { MessageBox.Show(ex.Message); } } }