Файл: Лабораторная работа Продажа билетов в кинотеатре. Простейший пример программирования баз данных.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.12.2023
Просмотров: 81
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Лабораторная работа Продажа билетов в кинотеатре. Простейший пример программирования» баз данныхПостановка задачиНаписать программу учета проданных билетов в кинотеатре с одним залом в течение одного дня. Результат – файл базы данных (БД, по англ. – DB, Data Base), содержащий набор записей с полями: время сеанса, ряд и место каждого из проданных билетов.РешениеСоздадим в MS Access заготовку базы данных – файл kino.accdb c одной таблицей кино1, сохраним его в любом месте на диске, например: D:\БазыДанных\Data\kino.accdb.Перейдем к проектированию.Создадим в Visual Studio 2017 проект с именем КИНО.На форме разместим два элемента управления: dataGridView1 и кнопку button1 («Обновить»). Первый элемент будем использовать не только для представления (View) данных таблицы кино1, но, как окажется, и для ее изменения. Вид формы представлен ниже.Сохраним проект, например в папке D:\КИНО. Запустив проект на выполнение, мы увидим ту же картину – пока от такого приложения пользы никакой.Свяжем нашу БД с dataGridView1. Щелкнем по компоненту dataGridView1. В правом верхнем углу появится маленький треугольник, нажав на который вы вызовете меню «Задачи» этого элемента.Не изменяйте пункты «Включить … », они то и как раз обеспечат нам добавление новых записей, их правку и даже удаление. Возможность изменения порядка столбцов оставьте не отмеченной, пользователю – кассиру эта функция вредна.В окне «Выберите источник данных» откройте вкладку и выберите позицию внизу «Добавить источник данных проекта». Откроется окно «Мастер настройки источника данных», в котором выберите позицию «База данных» и нажмите кнопку «Далее». Откроется окно «Выбор модели базы данных», в котором выберите «Набор данных» и также нажмите кнопку «Далее».Следующее действие — «Выбор подключения базы данных». В окне нажмите кнопку справа «Создать подключение». Откроется окно «Добавить подключение». Задайте источник подключения, выбрав 2-ю позицию «Файл базы данных Microsoft Access», единственный Поставщик данных для которого — .Net Framework для OLE DB и нажмите Ok.
Далее через обзор найдите созданный вами ранее файл БД kino.accdb и нажмите кнопку «Открыть».Имя пользователя не изменяйте, пароль пока не вводите.Проверьте подключение БД, в диалоговом окне появится сообщение «Проверка подключения выполнена», закройте окно диалога.Проверьте строку подключения:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\БазыДанных\Data\kino.accdbИмя строки подключения пока совпадает с именем файла БД. Нажмите кнопку «Далее».В диалоговом окне появится сообщение-вопрос:«Выбранное подключение использует локальный файл базы данных, не относящийся к текущему проекту. Копировать файл в проект и изменить подключение? При копировании файла в проект он будет копироваться в выходной каталог проекта при каждом запуске приложения …».Возможные ответы «Да», «Нет», «Справка». Выбираем ответ «ДА».Согласитесь с предложением сохранить строку подключения в файле конфигурации приложения какkinoConnectionString1, нажав кнопку «Далее».Из набора данных kinoDataSet1 укажите объекты БД для набора данных – отметьте таблицу кино1 (она у нас единственная). Нажимаем кнопку «Готово».Посмотрим, что получили мы в процессе этих манипуляций?В нашей таблице мы видим заголовки столбцов. На панели внизу появились не визуальные элементы: kinoDataSet (набор данных), kino1BindingSource («связка») и kino1TableAdapter (адаптер таблицы).Каталог КИНО теперь содержит следующие папки и файлы:Выходной каталог проекта КИНО\bin\Debug\ содержит собственно приложение КИНО.exe и файл БД kino.accdb. Этих двух файлов достаточно для решения задачи. Отметим, что на закладке кода автоматически в метод Form1_Load( ) вставляется операторthis.кино1TableAdapter.Fill(this.kinoDataSet.кино1);который обеспечивает загрузку БД.Единственный оператор, который нужно вставить «вручную» в обработчик события button1_OnClick :this.кино1TableAdapter.Update(this.kinoDataSet.кино1);Отметим очень лаконичный программный код Form1.Текстфайла Form1.csusing System;using System.Windows.Forms;namespace КИНО{public partial class Form1 : Form{public Form1(){InitializeComponent();
}private void Form1_Load(object sender, EventArgs e){this.кино1TableAdapter.Fill(this.kinoDataSet.кино1);}private void button1_Click(object sender, EventArgs e){this.кино1TableAdapter.Update(this.kinoDataSet.кино1);}}}Пример запуска программы:Добавления, удаления и изменения строк немедленно попадают в файл БД и отображаются также при последующем запуске программы.При проектировании автоматически сформировались связи объектов между собой:Файл kino.accdb (источник данных) <—> кино1TableAdapter(мост) <—> kinoDataSet <—> кино1BindingSource <—> dataGridView1.Данный пример демонстрирует способ работы с источником данных (файл kino.accdb) в автономном режиме. Автономный (отключенный) уровень (disconnected layer) позволяет работать с набором объектов DataTable (в примере — одна таблица кино1), содержащихся в DataSet, который представляет на стороне клиента копию внешних данных.При получении DataSet с помощью объекта — адаптера данных кино1TableAdapter подключение открывается и закрывается автоматически (метод кино1TableAdapter.Fill(this.kinoDataSet.кино1);). Визуальный компонент dataGridView1 оказался связанным с kinoDataSet не напрямую (что также возможно), а через связующий компонент кино1BindingSource (в окне «Cвойства» обратите внимание на значение поля DataSource у компонентов dataGridView1 и кино1BindingSource).Получив объект DataSet, программа может просматривать и обрабатывать данные без затрат на сетевой трафик. А если нужно занести изменения в хранилище данных, то адаптер данных (метод кино1TableAdapter.Update(this.kinoDataSet.кино1);) выполняет действия по обновлению данных — п
Далее через обзор найдите созданный вами ранее файл БД kino.accdb и нажмите кнопку «Открыть».Имя пользователя не изменяйте, пароль пока не вводите.Проверьте подключение БД, в диалоговом окне появится сообщение «Проверка подключения выполнена», закройте окно диалога.Проверьте строку подключения:Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\БазыДанных\Data\kino.accdbИмя строки подключения пока совпадает с именем файла БД. Нажмите кнопку «Далее».В диалоговом окне появится сообщение-вопрос:«Выбранное подключение использует локальный файл базы данных, не относящийся к текущему проекту. Копировать файл в проект и изменить подключение? При копировании файла в проект он будет копироваться в выходной каталог проекта при каждом запуске приложения …».Возможные ответы «Да», «Нет», «Справка». Выбираем ответ «ДА».Согласитесь с предложением сохранить строку подключения в файле конфигурации приложения какkinoConnectionString1, нажав кнопку «Далее».Из набора данных kinoDataSet1 укажите объекты БД для набора данных – отметьте таблицу кино1 (она у нас единственная). Нажимаем кнопку «Готово».Посмотрим, что получили мы в процессе этих манипуляций?В нашей таблице мы видим заголовки столбцов. На панели внизу появились не визуальные элементы: kinoDataSet (набор данных), kino1BindingSource («связка») и kino1TableAdapter (адаптер таблицы).Каталог КИНО теперь содержит следующие папки и файлы:Выходной каталог проекта КИНО\bin\Debug\ содержит собственно приложение КИНО.exe и файл БД kino.accdb. Этих двух файлов достаточно для решения задачи. Отметим, что на закладке кода автоматически в метод Form1_Load( ) вставляется операторthis.кино1TableAdapter.Fill(this.kinoDataSet.кино1);который обеспечивает загрузку БД.Единственный оператор, который нужно вставить «вручную» в обработчик события button1_OnClick :this.кино1TableAdapter.Update(this.kinoDataSet.кино1);Отметим очень лаконичный программный код Form1.Текстфайла Form1.csusing System;using System.Windows.Forms;namespace КИНО{public partial class Form1 : Form{public Form1(){InitializeComponent();
}private void Form1_Load(object sender, EventArgs e){this.кино1TableAdapter.Fill(this.kinoDataSet.кино1);}private void button1_Click(object sender, EventArgs e){this.кино1TableAdapter.Update(this.kinoDataSet.кино1);}}}Пример запуска программы:Добавления, удаления и изменения строк немедленно попадают в файл БД и отображаются также при последующем запуске программы.При проектировании автоматически сформировались связи объектов между собой:Файл kino.accdb (источник данных) <—> кино1TableAdapter(мост) <—> kinoDataSet <—> кино1BindingSource <—> dataGridView1.Данный пример демонстрирует способ работы с источником данных (файл kino.accdb) в автономном режиме. Автономный (отключенный) уровень (disconnected layer) позволяет работать с набором объектов DataTable (в примере — одна таблица кино1), содержащихся в DataSet, который представляет на стороне клиента копию внешних данных.При получении DataSet с помощью объекта — адаптера данных кино1TableAdapter подключение открывается и закрывается автоматически (метод кино1TableAdapter.Fill(this.kinoDataSet.кино1);). Визуальный компонент dataGridView1 оказался связанным с kinoDataSet не напрямую (что также возможно), а через связующий компонент кино1BindingSource (в окне «Cвойства» обратите внимание на значение поля DataSource у компонентов dataGridView1 и кино1BindingSource).Получив объект DataSet, программа может просматривать и обрабатывать данные без затрат на сетевой трафик. А если нужно занести изменения в хранилище данных, то адаптер данных (метод кино1TableAdapter.Update(this.kinoDataSet.кино1);) выполняет действия по обновлению данных — п