Загрузка данных
using System;
using System.Data.Entity;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
namespace StudentsProgressEdmxApp
{
public partial class MainWindow : Window
{
// ============================================================
// 1. КОНТЕКСТ БАЗЫ ДАННЫХ
// ============================================================
private rassosEntities db = new rassosEntities();
// ============================================================
// 2. ГРИДЫ (ЭЛЕМЕНТЫ УПРАВЛЕНИЯ)
// ============================================================
public DataGrid DepartmentsGrid { get; private set; }
public DataGrid DoctorsGrid { get; private set; }
public DataGrid PatientsGrid { get; private set; }
public DataGrid DiagnosesGrid { get; private set; }
public DataGrid HistoryOfDiseasesGrid { get; private set; }
public TabControl MainTabs { get; private set; }
public TextBlock CountText { get; private set; }
// ============================================================
// 3. КОНСТРУКТОР
// ============================================================
public MainWindow()
{
InitializeComponent();
// Находим элементы по имени из XAML
DepartmentsGrid = FindName("DepartmentsGrid") as DataGrid;
DoctorsGrid = FindName("DoctorsGrid") as DataGrid;
PatientsGrid = FindName("PatientsGrid") as DataGrid;
DiagnosesGrid = FindName("DiagnosesGrid") as DataGrid;
HistoryOfDiseasesGrid = FindName("HistoryOfDiseasesGrid") as DataGrid;
MainTabs = FindName("MainTabs") as TabControl;
CountText = FindName("CountText") as TextBlock;
LoadData();
}
// ============================================================
// 4. ЗАГРУЗКА ДАННЫХ
// ============================================================
private void LoadData()
{
try
{
db.departments.Load();
db.doctors.Load();
db.patients.Load();
db.diagnoses.Load();
db.history_of_diseases.Load();
if (DepartmentsGrid != null)
DepartmentsGrid.ItemsSource = db.departments.Local;
if (DoctorsGrid != null)
DoctorsGrid.ItemsSource = db.doctors.Local;
if (PatientsGrid != null)
PatientsGrid.ItemsSource = db.patients.Local;
if (DiagnosesGrid != null)
DiagnosesGrid.ItemsSource = db.diagnoses.Local;
if (HistoryOfDiseasesGrid != null)
HistoryOfDiseasesGrid.ItemsSource = db.history_of_diseases.Local;
ShowCount();
}
catch (Exception ex)
{
MessageBox.Show("Ошибка загрузки: " + ex.Message);
}
}
// ============================================================
// 5. ПОКАЗАТЬ КОЛИЧЕСТВО ЗАПИСЕЙ
// ============================================================
private void ShowCount()
{
if (CountText == null) return;
if (MainTabs == null)
{
CountText.Text = "Записей: 0";
return;
}
try
{
int index = MainTabs.SelectedIndex;
int count = 0;
switch (index)
{
case 0:
count = db.departments.Local.Count;
break;
case 1:
count = db.doctors.Local.Count;
break;
case 2:
count = db.patients.Local.Count;
break;
case 3:
count = db.diagnoses.Local.Count;
break;
case 4:
count = db.history_of_diseases.Local.Count;
break;
default:
count = 0;
break;
}
CountText.Text = "Записей: " + count;
}
catch { CountText.Text = "Записей: 0"; }
}
// ============================================================
// 6. ОБНОВЛЕНИЕ ДАННЫХ (кнопка Refresh)
// ============================================================
private void RefreshData(object sender, RoutedEventArgs e)
{
LoadData();
}
// ============================================================
// 7. СМЕНА ВКЛАДКИ
// ============================================================
private void MainTabs_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ShowCount();
}
// ============================================================
// 8. ДОБАВЛЕНИЕ ЗАПИСИ
// ============================================================
private void AddData(object sender, RoutedEventArgs e)
{
try
{
if (MainTabs == null) return;
int index = MainTabs.SelectedIndex;
switch (index)
{
case 0: // Отделения
db.departments.Add(new departments
{
name = "Новое отделение",
floor = 1,
office_numbers = "101",
head_doctor = "Иванов И.И."
});
break;
case 1: // Врачи
db.doctors.Add(new doctors
{
surname = "Новый",
name = "Врач",
middleName = "Н",
position = "Терапевт",
experience = 0,
scientific_rank = "Нет",
address = "г. Москва",
id_department = 1
});
break;
case 2: // Пациенты
db.patients.Add(new patients
{
surname = "Новый",
name = "Пациент",
middleName = "П",
address = "г. Москва",
city = "Москва",
age = 30,
sex = "М"
});
break;
case 3: // Диагнозы
db.diagnoses.Add(new diagnoses
{
name = "Новый диагноз",
signs = "Симптомы",
treatment_period = "7 дней",
prescriptions = "Лекарства"
});
break;
case 4: // История болезней
db.history_of_diseases.Add(new history_of_diseases
{
id_patient = 1,
id_doctor = 1,
id_diagnosis = 1,
treatment = "Лечение",
date_of_disease = DateTime.Today,
date_of_recovery = null,
type_of_treatment = "амбулаторное"
});
break;
}
db.SaveChanges();
LoadData();
MessageBox.Show("Запись добавлена!", "Успех", MessageBoxButton.OK, MessageBoxImage.Information);
}
catch (Exception ex)
{
MessageBox.Show("Ошибка добавления: " + ex.Message);
}
}
// ============================================================
// 9. УДАЛЕНИЕ ЗАПИСИ
// ============================================================
private void DeleteData(object sender, RoutedEventArgs e)
{
try
{
if (MainTabs == null) return;
int index = MainTabs.SelectedIndex;
switch (index)
{
case 0: // Отделения
var dept = DepartmentsGrid?.SelectedItem as departments;
if (dept != null) db.departments.Remove(dept);
break;
case 1: // Врачи
var doc = DoctorsGrid?.SelectedItem as doctors;
if (doc != null) db.doctors.Remove(doc);
break;
case 2: // Пациенты
var pat = PatientsGrid?.SelectedItem as patients;
if (pat != null) db.patients.Remove(pat);
break;
case 3: // Диагнозы
var diag = DiagnosesGrid?.SelectedItem as diagnoses;
if (diag != null) db.diagnoses.Remove(diag);
break;
case 4: // История болезней
var hist = HistoryOfDiseasesGrid?.SelectedItem as history_of_diseases;
if (hist != null) db.history_of_diseases.Remove(hist);
break;
}
db.SaveChanges();
LoadData();
MessageBox.Show("Запись удалена!", "Успех", MessageBoxButton.OK, MessageBoxImage.Information);
}
catch
{
MessageBox.Show("Запись удалить нельзя! Есть связанные данные.");
}
}
// ============================================================
// 10. СОХРАНЕНИЕ ПРИ ЗАКРЫТИИ
// ============================================================
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
try
{
db.SaveChanges();
}
catch { }
}
}
}