169 lines
6.1 KiB
C#
169 lines
6.1 KiB
C#
|
using Microsoft.Win32;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Collections.ObjectModel;
|
|||
|
using System.Data.Entity;
|
|||
|
using System.Data.Entity.Infrastructure;
|
|||
|
using System.Data.Entity.Migrations;
|
|||
|
using System.Data.SqlClient;
|
|||
|
using System.Data.SqlTypes;
|
|||
|
using System.Linq;
|
|||
|
using System.Runtime.Remoting.Contexts;
|
|||
|
using System.Text;
|
|||
|
using System.Windows;
|
|||
|
using System.Windows.Controls;
|
|||
|
using System.Windows.Data;
|
|||
|
using System.Windows.Documents;
|
|||
|
using System.Windows.Input;
|
|||
|
using System.Windows.Media;
|
|||
|
using System.Windows.Media.Imaging;
|
|||
|
using System.Windows.Navigation;
|
|||
|
using System.Windows.Shapes;
|
|||
|
using System.IO;
|
|||
|
using System.Data.Entity.Validation;
|
|||
|
|
|||
|
namespace musicschoolapp.Pages
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// Логика взаимодействия для StudentEditingPage.xaml
|
|||
|
/// </summary>
|
|||
|
public partial class Instr : Page
|
|||
|
{
|
|||
|
musicschoolEntities1 mse = new musicschoolEntities1();
|
|||
|
DbSet<Student> dbContext_;
|
|||
|
List<Instruments> students1;
|
|||
|
bool adding = false;
|
|||
|
public Instr()
|
|||
|
{
|
|||
|
InitializeComponent();
|
|||
|
//dbContext_ = dbContext;
|
|||
|
students1 = mse.Instruments.ToList();
|
|||
|
dGridStudent.ItemsSource = students1;
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
public int updateDB()
|
|||
|
{
|
|||
|
try
|
|||
|
{
|
|||
|
foreach (var student in students1)
|
|||
|
{
|
|||
|
var original = mse.Instruments.Find(student.Id_instrument);
|
|||
|
|
|||
|
if (original != null)
|
|||
|
{
|
|||
|
// Обновить запись в базе данных
|
|||
|
mse.Entry(original).CurrentValues.SetValues(student);
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
mse.Instruments.Add(student);
|
|||
|
}
|
|||
|
}
|
|||
|
students1 = mse.Instruments.ToList();
|
|||
|
dGridStudent.ItemsSource = students1;
|
|||
|
int saveresult = mse.SaveChanges();
|
|||
|
|
|||
|
return saveresult;
|
|||
|
}
|
|||
|
catch (Exception ex)
|
|||
|
{
|
|||
|
return -1;
|
|||
|
}
|
|||
|
}
|
|||
|
private void dGridStudent_MouseDoubleClick(object sender, MouseButtonEventArgs e)
|
|||
|
{
|
|||
|
var grid = (DataGrid)sender;
|
|||
|
var cellInfo = grid.SelectedCells[grid.CurrentCell.Column.DisplayIndex];
|
|||
|
|
|||
|
if (cellInfo.Column.Header.ToString() == "Фото")
|
|||
|
{
|
|||
|
if (MessageBox.Show("Вы дважды кликнули по столбцу 'Фото'. Изменить?", "Вопрос", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
|
|||
|
{
|
|||
|
OpenFileDialog openFileDialog = new OpenFileDialog();
|
|||
|
openFileDialog.ShowDialog();
|
|||
|
if (mse.Instruments.Find((grid.SelectedItem as Instruments).Id_instrument) == null)
|
|||
|
{
|
|||
|
MessageBox.Show("Объект не создан.");
|
|||
|
grid.SelectedItem = -1;
|
|||
|
//return;
|
|||
|
mse.Instruments.Add(dGridStudent.SelectedItem as Instruments);
|
|||
|
try
|
|||
|
{
|
|||
|
mse.SaveChanges();
|
|||
|
}
|
|||
|
catch (DbEntityValidationException ex)
|
|||
|
{
|
|||
|
foreach (var entityValidationErrors in ex.EntityValidationErrors)
|
|||
|
{
|
|||
|
foreach (var validationError in entityValidationErrors.ValidationErrors)
|
|||
|
{
|
|||
|
MessageBox.Show("Свойство: " + validationError.PropertyName + " Ошибка: " + validationError.ErrorMessage);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
MessageBox.Show("добавил");
|
|||
|
int index = grid.SelectedIndex;
|
|||
|
grid.SelectedIndex = -1;
|
|||
|
grid.SelectedIndex = index;
|
|||
|
//dGridStudent.RaiseEvent();
|
|||
|
dGridStudent_SelectionChanged(sender, new SelectionChangedEventArgs(DataGrid.SelectionChangedEvent, new Collection<object> { }, new Collection<object> { dGridStudent.SelectedItem }));
|
|||
|
}
|
|||
|
mse.SaveChanges();
|
|||
|
dGridStudent.ItemsSource = mse.Instruments.ToList();
|
|||
|
}
|
|||
|
}
|
|||
|
//}
|
|||
|
}
|
|||
|
private void dGridStudent_SelectionChanged(object sender, SelectionChangedEventArgs e)
|
|||
|
{
|
|||
|
if (e.AddedItems != null && e.AddedItems.Count > 0)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
else if (e.RemovedItems != null && e.RemovedItems.Count > 0)
|
|||
|
{
|
|||
|
|
|||
|
Instruments selectedStudent = (e.RemovedItems[0] as Instruments);
|
|||
|
if (selectedStudent != null)
|
|||
|
{
|
|||
|
Instruments studentInDb = mse.Instruments.Find(selectedStudent.Id_instrument);
|
|||
|
if (studentInDb != null)
|
|||
|
{
|
|||
|
mse.Instruments.Remove(studentInDb);
|
|||
|
|
|||
|
try
|
|||
|
{
|
|||
|
mse.SaveChanges();
|
|||
|
}
|
|||
|
catch (DbUpdateException ex)
|
|||
|
{
|
|||
|
|
|||
|
MessageBox.Show("Запись, похоже, удалить нельзя.\n\n" + ex.InnerException);
|
|||
|
students1 = mse.Instruments.ToList();
|
|||
|
mse.Entry(studentInDb).State = System.Data.EntityState.Unchanged;
|
|||
|
|
|||
|
return;
|
|||
|
}
|
|||
|
students1.Remove(dGridStudent.SelectedItem as Instruments);
|
|||
|
dGridStudent.SelectedIndex = -1;
|
|||
|
//students1 = mse.Student.ToList();
|
|||
|
MessageBox.Show("Удалено");
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
private void BtnEdit_Click(object sender, RoutedEventArgs e)
|
|||
|
{
|
|||
|
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|