Uploaded by Денис Пуховский

Работа на Демо экзамене

advertisement
Работа на Демо экзамене
Начало работы: ознакомьтесь с содержанием задания.
Просмотрите все вложенные файлы и папки.
1) mssql_script_trade – в данном файле хранится скрип
БД. Этот файл нужно развернуть в MS SQL Server
Удалить команду
create database [Trade]
Go
Изменить имя БД в команде
use [Trade]
На название БД доступной вам, например,
use [bd01]
После нажмите на кнопку Выполни
ть (или
F5) скрипт создаст, в выбранной БД, таблицы,
приписанные в нем.
Далее обновите список баз в Обозревателе объектов и создайте
Диаграмму БД и посмотрите какие таблицы созданы, измените
созданные таблицы и добавьте недостающие (предварительно
просмотрев файлы с данными для загрузки)
1
2
3
Для создания таблиц можно воспользоваться контекстным меню
«Создать таблицу» в окне «Диаграммы БД»
1
2 Заполнить имена столбцов и
выбрать подходящие типы данных
3 Задать первичный
ключевого
поля
с
контекстного меню
ключ для
помощью
4 Создать недостающие связи
между таблицами. Для этого
необходимо
«перетянуть»
мышью поле с первичным
ключом в главной таблице на
поле с внешним ключом в
подчиненной таблице.
После закрытия диаграммы БД система предложит сохранить изменения
в БД – согласиться. Добавленные таблицы, поле обновления
Обозревателя решений, появятся в перечне таблиц БД.
1
2
Если при попытке сохранить изменения в БД через Диаграмму БД – система
выдаст ошибку «Невозможно сохранить изменения», то необходимо в меню
Сервис\Параметры\Конструкторы\Конструкторы таблиц и баз данных – убрать
флажок напротив команды «Запретить сохранение изменений, требующих
повторного создания таблицы»
Данные в таблицах начинаем создавать с тех таблиц, куда не приходит
внешний ключ, т.е. с главных.
2. Заполняется второй, ТОЛЬКО ПОСЛЕ
заполнения главной таблицы
Заполнение таблиц данными
- Открываем таблицу, которую
необходимо заполнить – Контекстное
меню\ Изменить первые 200 строк
- Открываем файл с подготовленными
данными для загрузки, например, в
Excel.
- Выделяем нужные ячейки вместе с
пустым первым столбцом (для
формирования в БД «айдишников»)
- Копируем выделенное
- Вставляем в БД, выделив первую
строку таблицы
- Вставляем скопированные данные
1. Заполняется первой, т.к. в нее не
входят внешние связи
ВНИМАНИЕ! Для корректной загрузки данных в SQL необходимо, чтобы порядок
следования полей в таблице БД и Excel совпадали
Скопированные данные НЕ загрузятся, если
Скопированные данные загрузятся, если
Создание приложения
Дайте имя проекту соответствующее
названию задания, например, Tovary
Настройте подключение к Gogs
На главной странице Gogs выберите
из предложенных аккаунтов ваш
(личные ФИО студента) откройте его.
В открывшемся окне создайте новый
репозиторий как показано на
рисунке.
В открывшемся окне задайте имя репозитория, например, examen_1
1
2
После ввода имени репозитория - нажать кнопку «Создать
репозиторий», система создаст репозиторий с заданным именем и
откроет следующее окно:
В окне приложения Vidual Studio в меню Git\Создать репозиторий Git…
Далее в открывшемся окне настройки
Другое\Существующий удаленный объект
подключения
выбрать
Скопировать адрес строки подключения и вставить в окно «Удаленный
URL-адрес»
После нажать
отправить»
кнопку
«Создать
и
Далее операционная система может
выдать окно Безопасности Windows, в
котором необходимо ввести логин и
пароль, которые вы вводили при входе в
Gogs
Чтобы увидеть изменения
в Git (Gogs), необходимо в
Обозревателе
решений
открыть
вкладку
«Изменения в Git» (внизу
окна)
После в указанной папке система создаст папку с проектом, в которой и
будут хранится все изменения в проекте и отображаться в системе Gogs
После внесения изменений в проект, данные в Gogs необходимо обновить. Это
нужно сделать из Visual Studio, в Обозревателе объектов во вкладке Изменения
в Git, как показано на рисунке
При обновлении Git необходимо Сохранить изменения (1)
В репозитории отобразиться Ваш проект (2)
1
2
Чтобы добавить в Gogs текстовый или табличный документ, можно просто
воспользоваться кнопкой «Новый файл Загрузить файл» и «перетащить» файл в окно –
нажать кнопку «Сохранить изменения» и файл будет добавлен в репозиторий.
Добавление возможных изменений в
проект
может
иметь
вид
представленный на рисунке. Для
добавления
изменений
в
Gogs
необходимо нажать +
Начало разработки
Добавим иконку для приложения:
- Проект\Свойства\Приложение
- Ресурсы
- Значок и манифест
- Обзор
- Выбрать файл с расширение .ico
После этой стройки на каждом
окне
приложения
будет
отображаться выбранная иконка
Подключение БД к проекту
Так как сервер БД удаленный
(находится на сервере колледжа),
то
необходимо
настроить
удаленное подключение
Ввести имя сервера - сообщит организатор
экзамена
Выбрать проверку подлинности SQL Server
Ввести ваш логин и пароль, которые сообщит
организатор экзамена
В приложении VS выбрать Проект \ Добавить новый элемент \ Данные \
Модель ADO.NET EDM
В мастере моделей настроить подключение
Ввести ваш логин и пароль, которые
сообщит организатор экзамена
Выбрать вашу БД из списка
Имя БД для подключения в приложение
После нажатия на кнопку «Готово» в Мастере
моделей, БД будет привязана к проекту VS и
отобразиться в окне Обозреватель решений
Данную модель необходимо прописать в коде
приложения
Разработка окна «Авторизация»
Разметка:
Title="Авторизация" Width="300" Height="300" MinHeight="300"
MinWidth="300">
<Grid>
<StackPanel HorizontalAlignment="Center"
VerticalAlignment="Center">
<TextBlock FontSize="16">Логин</TextBlock>
<TextBox x:Name="TbLogin" FontSize="16"
Width="200" Height="30" Margin="5"></TextBox>
<TextBlock FontSize="16">Пароль</TextBlock>
<PasswordBox x:Name="PsBox" FontSize="16"
Width="200" Height="30" Margin="5"></PasswordBox>
<Button x:Name="BtnEnter" FontSize="16"
Width="150" Height="30" Margin="5" Content="Вход"
Click="BtnEnter_Click"></Button>
</StackPanel>
</Grid>
Подключение к окну авторизации БД
public partial class MainWindow : Window
{
bd01Entities bd01;
public MainWindow()
{
bd01 = new bd01Entities();
InitializeComponent();
}
//Подключение БД к окну Авторизация
public DataTable Select(string selectSQL)
{
DataTable dataTable = new DataTable("dataBase");
//Прописываем строку подключения
SqlConnection sqlConnection = new SqlConnection(@"data source=DESKTOP-FVIDII9\SQLEXPRESS;initial
catalog=bd01;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework;");
sqlConnection.Open();
SqlCommand sqlCommand = sqlConnection.CreateCommand();
sqlCommand.CommandText = selectSQL;
SqlDataAdapter sqlDataAdapter = new SqlDataAdapter(sqlCommand);
sqlDataAdapter.Fill(dataTable);
return dataTable;
}
//Обработчик на кнопку вход, Сверка введенных, с данными из БД
private void BtnEnter_Click(object sender, RoutedEventArgs e)
{
if (TbLogin.Text.Length > 0) // проверяем введён ли логин
{
if (PsBox.Password.Length > 0) // проверяем введён ли пароль
{
// ищем в базе данных пользователя с такими данными
DataTable dt_user = Select("SELECT * FROM [dbo].[User] WHERE
[UserLogin] = '" + TbLogin.Text + "' AND [UserPassword] = '" + PsBox.Password + "'");
if (dt_user.Rows.Count > 0) // если такая запись существует
{
var w1 = new Window1(); //при успешной авторизации
w1.ShowDialog();
//откроется окно
}
else MessageBox.Show("Пользователя не найден"); // выводим ошибку
}
else MessageBox.Show("Введите пароль"); // выводим ошибку
}
else MessageBox.Show("Введите логин"); // выводим ошибку
}
Окно «Товары» - вход под администратором
(пример)
Разметка окна «Товары»
Title="Товары" Height="450" Width="900">
<Grid>
<Grid.RowDefinitions>
<RowDefinition
Height="0.3*"></RowDefinition>
<RowDefinition></RowDefinition>
<RowDefinition
Height="0.3*"></RowDefinition>
</Grid.RowDefinitions>
<DataGrid x:Name="DtgTovar" Grid.Row="1" AutoGenerateColumns="False"
ColumnWidth="*" IsReadOnly="False" SelectionMode="Single" FontSize="15">
<DataGrid.Columns>
<DataGridTextColumn Header="Артикул" Binding="{Binding
ProductArticleNumber}"></DataGridTextColumn>
<DataGridTextColumn Header="Наименование"
Binding="{Binding ProductName}"></DataGridTextColumn>
<DataGridTextColumn Header="Категория" Binding="{Binding
ProductDescription}"></DataGridTextColumn>
<DataGridTextColumn Header="Описание" Binding="{Binding
ProductCategory}"></DataGridTextColumn>
<DataGridTextColumn Header="Фото" Binding="{Binding
ProductPhoto}"></DataGridTextColumn>
<DataGridTextColumn Header="Производитель"
Binding="{Binding ProductManufacturer}"></DataGridTextColumn>
<DataGridTextColumn Header="Цена" Binding="{Binding
ProductCost}"></DataGridTextColumn>
<StackPanel Orientation="Horizontal"
VerticalAlignment="Center">
<DataGridTextColumn Header="Скидка" Binding="{Binding
ProductDiscountAmount}"></DataGridTextColumn>
<TextBlock FontSize="16"
Margin="5">Поиск</TextBlock>
<DataGridTextColumn Header="количество на складе"
Binding="{Binding ProductQuantityInStock}"></DataGridTextColumn>
<TextBox x:Name="TbPoisc" FontSize="16"
Width="200" Height="30" Margin="5"
TextChanged="TbPoisc_TextChanged"></TextBox>
<ComboBox x:Name="CmbKat" FontSize="16"
Width="200" Height="30" Margin="5"
SelectionChanged="CmbKat_SelectionChanged"></ComboB
ox>
<Button x:Name="BtnPoisc" FontSize="16"
Width="200" Height="30" Margin="5"
Click="BtnPoisc_Click">Поиск</Button>
</StackPanel>
<DataGridTextColumn Header="Статус" Binding="{Binding
ProductStatus}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
<StackPanel Grid.Row="2" Orientation="Horizontal"
VerticalAlignment="Center">
<Button x:Name="BtnAdd" FontSize="16" Width="200" Height="30"
Margin="5" Click="BtnAdd_Click">Добавить</Button>
<Button x:Name="BtnDel" FontSize="16" Width="200" Height="30"
Margin="5" Click="BtnDel_Click">Удалить</Button>
<Button x:Name="BtnUpd" FontSize="16" Width="200" Height="30"
Margin="5" Click="BtnUpd_Click">Изменить</Button>
</StackPanel>
</Grid>
Привязка DataGrid к БД
public partial class Window1 : Window
{
bd01Entities bd01;
public Window1()
{
bd01 = new bd01Entities();
InitializeComponent();
DtgTovar.ItemsSource = bd01.Product.ToList();
}
Обработчик на кнопку «Удалить»
private void BtnDel_Click(object sender, RoutedEventArgs e)
{
var stroka = DtgTovar.SelectedItem as Product;
if (stroka == null)
{
MessageBox.Show("Чтобы удалить - выберите строку!");
return;
}
//окно с сообщением об удалении строки и кнопками Да/Нет/Отмена
MessageBoxResult result = MessageBox.Show("Вы уверены, что хотите удалить сторку?", "Удалить вопрос",
MessageBoxButton.YesNoCancel
, MessageBoxImage.Question);
if (result == MessageBoxResult.Yes)
{
bd01.Product.Remove(stroka);
bd01.SaveChanges();
DtgTovar.ItemsSource = bd01.Product.ToList(); // показывает записанную строку
}
}
Обработчик на кнопку добавить запись
Кнопка «Добавить» с главного окна
на добавление нового товара
Обработчик:
private void BtnAdd_Click(object sender,
RoutedEventArgs e)
Окно «Добавление товара»
public partial class AddTovar1 : Window
{
bd01Entities bd01;
{
var addTovar = new Product();
//объект класса создание
public AddTovar1(bd01Entities
bd01, Product product)
bd01.Product.Add(addTovar); //Add
- это метод добавления
addTovar);
InitializeComponent();
var win = new AddTovar1(bd01,
}
win.ShowDialog();
DtgTovar.ItemsSource =
bd01.Product.ToList(); // показывает
записанную строку
}
{
}
Download