СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Разработка кода ИС Практическая работа №27

Категория: Информатика

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Разработка кода ИС Практическая работа №27»

Практическое занятие № 27

Тема: Редактирование данных в WPF

Цель работы: научится реализовать обработку событий пользовательского интерфейса.

Приобретаемые умения и навыки: умение понимать структуру WPF-приложений и их компоненты.

Норма времени: 2 часа.

Оборудование: Компьютер с установленным программным обеспечением и подключенный к Internet.

Методические указания по выполнению практической работы

Сделать базу данных «DemoEXZ». Создать в ней таблицу, назвать ее нужно «User».

Таблица «Task»

Не забываем про первичные ключи!



Для заполнения таблицы нажимаем изменить первые 200 строк:



Сделать схему к базе данных:



Рисунок – Схема базы данных



СОЗДАНИЕ ПРОЕКТА

Запустите Visual Studio 2022, перейдите File – Project.

Выберите Visual C#– WPF App, укажите имя проекта.

После нажатия кнопки «OK» создастся проект с пустой формой.

Создаём 2 страницы:



Производим подключения базы данных, для этому подключаем модель





Переходим в SQL Server находим название соединения.

Находим свою БД

Открываем Model.Context.cs:

Делаем подключение БД к приложению:

//------------------------------------------------------------------------------

// auto-generated

// Этот код создан по шаблону.

//

// Изменения, вносимые в этот файл вручную, могут привести к непредвиденной работе приложения.

// Изменения, вносимые в этот файл вручную, будут перезаписаны при повторном создании кода.

//

//------------------------------------------------------------------------------


namespace DemoEXZWPF

{

using System;

using System.Data.Entity;

using System.Data.Entity.Infrastructure;

public partial class DemoEXZEntities : DbContext

{

private static DemoEXZEntities _instance;

public DemoEXZEntities()

: base("name=DemoEXZEntities")

{

}

public static DemoEXZEntities Instance()

{

if (_instance == null)

_instance = new DemoEXZEntities();

return _instance;

}


protected override void OnModelCreating(DbModelBuilder modelBuilder)

{

throw new UnintentionalCodeFirstException();

}

public virtual DbSet Task { get; set; }

public virtual DbSet User { get; set; }

}

}





Разметка MainWindow.xaml:

Grid

Grid.RowDefinitions

RowDefinition Height="145*"/

RowDefinition Height="55*"/

RowDefinition Height="234*"/

Grid.RowDefinitions

TextBox Grid.Row ="0" HorizontalAlignment="Center" TextWrapping="Wrap" Name = "TextBox1" Text="" VerticalAlignment="Top" Width="120" Margin="0,117,0,0" Height="18"/

TextBox Grid.Row ="1" HorizontalAlignment="Center" TextWrapping="Wrap" Name = "TextBox2" Text="" VerticalAlignment="Top" Width="120" Margin="0,10,0,0" Height="18"/

Button Grid.Row ="2" Content="Войти" HorizontalAlignment="Center" VerticalAlignment="Top" Width="120" Click="Button_Click" Height="20"/


Обработчик на кнопку Войти

Разметка ListWindow.xaml:

В этой разметки прописать IsVisibleChanged="Window_IsVisibleChanged"

Grid

Grid.RowDefinitions

RowDefinition Height="10*"/

RowDefinition Height="*"/

RowDefinition Height="*"/

Grid.RowDefinitions

DataGrid x:Name="DGridTasks" AutoGenerateColumns="False" IsReadOnly="True" SelectionChanged="DGridTasks_SelectionChanged"

DataGrid.Columns

DataGridTextColumn Header="Название" Binding="{Binding name}"DataGridTextColumn

DataGridTextColumn Header="Описание" Binding="{Binding description}"DataGridTextColumn

DataGridTextColumn Header="Пользователь" Binding="{Binding User.name}"DataGridTextColumn

DataGridTemplateColumn

DataGridTemplateColumn.CellTemplate

DataTemplate

Button Content="Редактировать" Name="BtnEdit" Click="BtnEdit_Click"Button

DataTemplate

DataGridTemplateColumn.CellTemplate

DataGridTemplateColumn

DataGrid.Columns

DataGrid

Button Content="Добавить" HorizontalAlignment="Left" Grid.Row="2" Width="400" Name="BtnAdd" Click="BtnAdd_Click"/

Button Content="Удалить" HorizontalAlignment="Right" Grid.Row="2" Width="400" Name="BtnDelete" Click="BtnDelete_Click"/

TextBox x:Name="SearchBox" HorizontalAlignment="Left" Grid.Row="1" TextWrapping="Wrap" Text="" VerticalAlignment="Top" Width="120" TextChanged="TextBox_TextChanged"/

ComboBox SelectedValue="{Binding user_id}" x:Name="ComboUser" SelectionChanged="ComboUser_SelectionChanged" DisplayMemberPath="name" SelectedValuePath="id" HorizontalAlignment="Right" Grid.Row="1" VerticalAlignment="Top" Width="120"/

Обработчики ListWindow.xaml.сs:

Заполнение ComboBox



Обработчик на кнопку Редактировать

Обработчик на кнопку Добавить


Обработчик на кнопку Удалить

Обработчик для вывода таблицы

Обработчик на TextBox «Поиск»

Обработчик на ComboBox «Фильтрация»

Разметка AddEditPage.xaml:

Grid

Grid.ColumnDefinitions

ColumnDefinition Width="*"/

ColumnDefinition Width="*"/

Grid.ColumnDefinitions

Grid.RowDefinitions

RowDefinition Height="*"/

RowDefinition Height="*"/

RowDefinition Height="*"/

RowDefinition Height="*"/

Grid.RowDefinitions

TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="Название" VerticalAlignment="Center"/

TextBlock HorizontalAlignment="Left" Grid.Row="1" TextWrapping="Wrap" Text="Пользователь" VerticalAlignment="Center"/

TextBlock HorizontalAlignment="Left" Grid.Row="2" TextWrapping="Wrap" Text="Описание" VerticalAlignment="Center"/

TextBox Grid.Column="1" HorizontalAlignment="Center" TextWrapping="Wrap" Text="{Binding name}" VerticalAlignment="Center" Width="170" Height="90"/

TextBox Grid.Column="1" HorizontalAlignment="Center" Grid.Row="2" TextWrapping="Wrap" Text="{Binding description}" VerticalAlignment="Center" Width="170" Height="57"/

ComboBox SelectedValue="{Binding user_id}" Grid.Column="1" HorizontalAlignment="Center" Grid.Row="1" VerticalAlignment="Center" Width="120" x:Name="ComboUser" DisplayMemberPath="name" SelectedValuePath="id"/

Button Content="Сохранить" HorizontalAlignment="Center" Grid.Row="3" Grid.ColumnSpan="2" VerticalAlignment="Center" Name="BtnSave" Click="BtnSave_Click"/


Обработчики AddEditPage.xaml.сs:


Обработчик на кнопку Сохранить

Контрольные вопросы:

  1. Какие существуют программы для создания баз данных?

  2. Чем отличается физическая схема базы данных от логической схемы?