Файл: Методические указания по организации самостоятельной работы студентов Для подготовки к лабораторной работе необходимо повторить следующий теоретический материал таблица, поле, запись, ячейка, ключ, типы данных в ms access, целостность данных.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.12.2023

Просмотров: 54

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

{

bindingNavigator1.BindingSource = privelegesBindingSource;

dataGridView1.DataSource = privelegesBindingSource;

label1.Text = "Privileges";

}
Щелкните правой кнопкой мыши по форме и перейдите к событию Load. Щелкните дважды по этому событию и добавьте к уже написанным строчкам кода в этой функции следующую строку:
dataGridView1.AutoGenerateColumns = true;
Теперь мы можем переключаться между таблицами для работы с ними во время работы программы с помощью пунктов меню. Конечный вид главной формы показан на рисунке 2.13. Запустите, протестируйте приложение.


Рисунок 2.13 - Конечный вид формы
2.3.6 Добавление отображения связанных таблиц

Добавим в проект новую форму, на которой покажем расселение студентов по комнатам. Через пункт Project/AddNewItem/WindowsForm добавьте к проекту новую форму. Назовите ее RSForm и сохраните в файле RSForm.cs. Измените значение свойства формы Text на Расселение: Выполните команду Data/ShowDataSources. В открывшемся окне Data Sources (рис.2.14) отображен источник данных HostelDataSet. Щелкните на стрелке вниз возле таблицы Rooms и выберите в выпадающем списке вид отображения Details. После этого щелкните по названию таблицы Roomsлевой кнопкой мыши, и не отпуская ее, перетащите на форму.



Рисунок 2.14 – Источник данных HostelDataSet

В результате на форме появятся средства для отображения полей таблицы (5 компонентов Label и TextBox), средство навигации по таблице (BindingNavigator), а в нижней части рабочей области среды разработки появились пять невидимых объектов предназначены для связи формы с таблицей (рис 2.15). Обратите внимание, в окне Data Sources под полями таблицы Rooms в виде подтаблицы располагается таблица Students Подтаблица показывает, что таблица Students является вторичной по отношению к таблице Rooms.



Рисунок 2.15 – Добавление к форме элементов для отображения таблицы Rooms

Выведем данные из таблицы студентов в табличном виде под полями таблицы комнат. Для этого следует щелкнуть по подтаблице Students под списком полей таблицы
Rooms, выбрать в выпадающем списке вид отображения dataGridView и перенести подтаблицу на форму, поместив внизу формы. На форме появится dataGridView для отображения связанных записей из таблицы Students и невидимые компоненты для связи.

Добавьте кнопку (button) на форму и измените значение ее свойства Text на Подтвердить изменения. Щелкните на кнопке и в появившемся шаблоне функции обработки ее нажатия напишите код:

private void button1_Click(object sender, EventArgs e)

{

if (MessageBox.Show("Вы действительно хотите подтвердить изменения?", "Изменение данных", MessageBoxButtons.YesNo) == DialogResult.Yes)

{

roomsBindingSource.EndEdit();

roomsTableAdapter.Update(hostelDataSet);

studentsTableAdapter.Update(hostelDataSet);}

}

На главной форме следует добавить пункт меню View и в него подпункт Расселение. Добавьте код в обработчик события нажатия на пункт меню Расселение:

private void расселениеToolStripMenuItem_Click(object sender, EventArgs e)

{

RSForm rs = new RSForm();

rs.ShowDialog();

privelegesTableAdapter.Fill(hostelDataSet.Priveleges);

studentsTableAdapter.Fill(hostelDataSet.Students);

roomsTableAdapter.Fill(hostelDataSet.Rooms);

}

Запустите приложение. Теперь, если с главной формы перейти на форму Расселение, то можно увидеть отображение комнат и живущих в них студентов (рис 2.16). Протестируйте работу этой формы и изменение данных на ней.



Рисунок 2.15 –Форма отображения связанных данных

2.4 Содержание отчета
Отчет должен содержать: цель, задания, полученные от преподавателя и результат их выполнения (вид формы и код), выводы по работе.
2.5 Контрольные задания и вопросы
1 Как создать новое Windows Application проекта в Microsoft Visual Studio?

2 Как осуществляется подключение базы данных к проекту?

3 Какие элементы используются для подключения данных?

4 Какие элементы используются для отображения данных?

5 В чем отличие работы с данными при использовании различных СУДБ?

6 Как подтвердить изменения в таблице?

7 Как отобразить связанные данные?


3 ИСПОЛЬЗОВАНИЕ ЗАПРОСОВ SQL. ОПЕРАТОР SELECT


    1. 3.1 Цель работы



Приобретение навыков использования в программе визуального компонента dataGridView и изучение особенностей класса OleDbConnection для реализации запросов SQL и улучшения знаний о возможностях оператора SELECT.


    1. 3.2 Методические указания по организации самостоятельной работы студентов



Начальным требованием для выполнения задания является знание таких теоретических знаний: структурированный язык (SQL); запрос; оператор SELECT; визуальный компонент dataGridView; статический запрос в VisualStudio.


    1. 3.3 Порядок выполнения работы и методические указания по ее выполнению



Реализуем дополнительные возможности в нашей программе. Добавим в проект новую форму, благодаря которой пользователь сможет писать произвольные запросы к БД. Это будет своеобразный редактор запросов, который позволит узнать об основных возможностях оператора SELECT.
3.3.1 Установка компонентов на форму

Через пункт Project/AddNewItem/WindowsForm добавьте к проекту новую форму. Назовите ее QueryEdit и сохраните в файле QueryEdit.cs.

Добавьте в главном меню программы еще один пункт QueryEdit и создайте для него обработчик события:

private void queryEditionToolStripMenuItem1_Click(object sender, EventArgs e)

{

QueryEdit qe = new QueryEdit();

qe.Show();

}

Добавьте на форму QueryEdit следующие компоненты: RichTextBox, три Button, DataGridView и расположите их так, как указано на рисунке 3.1.

Установите заданным по умолчанию текст у компонента RichTextBox равным «SELECT» (свойство Text) и дайте компоненту имя TestInput (свойство Name).

Установите свойство Text для кнопок в «Clear», «Do SQL» и «Exit».

После всех указанных действий форма должна принять вид, указанный на рисунке 3.1.



Рисунок 3.1 - Пример конечной формы
3.3.2. Добавление кода

В разделе подключаемых модулей добавьте к существующему списку модуль System.Data.OleDb;

using System.Data.OleDb;

В обработчик события OnClick кнопки Do SQL поместите код:

private void button1_Click(object sender, EventArgs e) {

try

{


OleDbConnection sqlconn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"Way…. \"");

sqlconn.Open();

OleDbDataAdapter oda = new OleDbDataAdapter(TestInput.Text, sqlconn);

DataTable dt = new DataTable();

oda.Fill(dt);

dataGridView1.DataSource = dt;

sqlconn.Close();

}

catch(Exception ex)

{ MessageBox.Show("Error");
}

}

В этом коде в «Way….» необходимо указать место, где находится БД. Например: “ D:\\temp\\BD\\HostelApp\\HostelApp\\bin\\Debug\\Hostel.mdb ”

Добавьте в обработчик события OnClick кнопки Clear:

private void button2_Click(object sender, EventArgs e)

{

TestInput.Clear();

TestInput.Text = "Select";

}
И добаьте код в обработчик события OnClick кнопки Exit:

private void button3_Click (object sender, EventArgs e)

{

this.Close();

}
3.3.3 Представление данных из таблицы

Запустите программу. Теперь введите в поле для запросов текст:

SELECT * FROM STUDENTS

Далее нажмите на кнопку Do SQL. В сетке должны появиться данные из таблицы Students (рис. 3.2). Знак * указывает, что необходимо вывести все поля из таблицы.


Рисунок 3.2 - Пример работы редактора запросов
Для уменьшения количества полей, который возвращаются можно перечислить необходимые поля вместо знака *:

SELECT SNP, Group, Room FROM STUDENTS

Можно увеличить количество полей, добавив вычислительное поле:

SELECT SNP,rooms.value*(100-Priveleges.Discount)/100 as pay, pay*12 as year_pay FROM Students, Priveleges, Rooms WHERE Students.[Privelege code] = Priveleges.[Privelege code] AND Rooms.[Room N] = Students.Room

Здесь поле pay является вычисляемым полем, которое показывает сколько студент платит за проживание за один месяц, а year_pay - за год.

Во многих случаях необходимо удалить повторяющиеся значения строк. Для этого можно использовать ключевое слово Distinct:

SELECT DISTINCT group FROM STUDENTS

Этот запрос выводит список групп, студенты которых проживают в этом общежитии. Попробуйте использовать его без DISTINCT и тогда -список увеличится.

Для ограничения количества записей, которые возвращаются, в оператор Select вводится параметр Where <булевое выражение>. Например:

SELECT * FROM rooms where flour=3

Оператор выведет все строки из таблицы rooms, в которых номер комнаты равен 3.

SELECT * FROM students where students.Group like 'ПИ%'

Этот оператор вернет данные о всех студентах, которые учатся на потоке ПИ. После слова like стоит шаблон, с которым сравниваются значения каждой записи в поле group. Символ
"%" означает возможность нескольких или отсутствие символов. Можно применять символ "_", который заменяет 1 символ.

Соединение таблиц позволяет связать данные более чем из одной таблицы, которые имеют логические связи:

SELECT students.*, Priveleges.[Privelege type], Priveleges.Discount FROM Students, Priveleges WHERE Students.[Privelege Code]= Priveleges.[Privelege Code]

Этот оператор вернет всю информацию из обоих таблиц, связав записи по номеру привилегии.

Можно провести анализ данных, выполнив их группировку. Например: можно вывести количество студентов из каждой группы, проживающих в данном общежитии. Это выполняет следующий запрос:

Select group, count(SNP) from Students group by Group

Для ограничения количества результирующих групп используется параметр HAVING:

Select group, count(SNP) from Students group by Group Having Count(SNP) > 5

Данный пример выведет список групп и количество студентов из этих групп, проживающих в общежитии, для тех групп, количество в которых более 5.

Попробуйте построить свои запросы, а потом выполните те запросы, которые даст вам преподаватель.
3.4 Содержание отчета:
Отчет должен содержать: цель, задание на запросы, полученные от преподавателя, построенные команды SELECT и результат их выполнения, выводы по работе.
3.5 Контрольные задания и вопросы
1 Как реализовать запрос на выборку? Какие компоненты при этом нужно использовать!

2 Как вывести данные без повторения строк?

3 Как вывести данные из нескольких таблиц?

4 Как ввести в запрос ограничение на группы?

5 Какие булевы операторы можно использовать в предложении WHERE?
4 ПОДГОТОВКА ЗАПРОСОВ SQL С ПАРАМЕТРАМИ. МОДИФИКАЦИЯ ДАННЫХ

4.1 Цель работы
Приобретение опыта при использовании динамических запросов с задаваемыми параметрами, освоение запросов языка SQL для модификации данных.
4.2 Методические указания по организации самостоятельной работы студентов
Необходимо повторить следующий теоретический материал: элемент TableAdapter и его свойства, запросы на модификацию данных.
4.3 Порядок выполнения работы и методические указания к её выполнению
Добавьте к программе ещё одну форму (EditForm), на которой разместите объекты для добавления и изменения данных, и дайте соответствующие названия элементам формы (рисунок 4.1)



Рисунок 4.1 – Форма ввода данных
Задайте источник данных для элементов типа comboBox. Для этого выберите элемент