Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
20.05.2015
Размер:
247.81 Кб
Скачать

Лабораторная работа №2

Работа с базами данных MS SQL Server в Visual Studio 2005

                  1. Создание базы данных

Примечание. Далее описывается способ создания базы данных непосредственно из среды Visual Studio. Базу данных можно также создать средствами MS SQL Server.

1. В меню выберите команду File/New Web Site. В открывшемся диалоговом окне задайте Templates: ASP.NET Web Site, Language: Visual C# и путь к каталогу, где будет сохранен ваш проект.

2. В меню выберите команду Website/Add New Item… В открывшемся диалоговом окне выберите шаблон SQL Database и задайте имя будущей БД, например Test.mdf. При этом появляется новый источник данных в окне Server Explorer.

3. В окне Server Explorer у Test.mdf выбираем Tables, нажимаем правую кнопку мыши и из появившегося меню выбираем пункт Add New Table. Появляется конструктор таблиц, где задаются имена полей таблиц, типы данных и ограничения целостности.

Создадим следующие таблицы, содержащие сведения о студентах учебного заведения:

Сначала выполним создание таблицы groups путем заполнения столбцов Column Name, Data Type и Allow Nulls необходимыми значениями имен полей, типов данных и наличия пустых значений соответственно. Для задания первичного ключа на строке, соответствующей полю id, щелкаем правой кнопкой мыши и выбираем Set Primary Key.

Для того чтобы значения первичного ключа формировались автоматически путем увеличения предыдущего значения на 1, необходимо, находясь на строке, соответствующей полю id, раскрыть в Column Properties пункт Identity specification и придать свойствам (Is Identity), Identity Increment и Identity Seed значения Yes, 1, и 1 соответственно.

После этого сохраняем таблицу (File/Save Table1) и задаем имя таблицы – groups.

Аналогично создаем таблицу students.

3. Создадим связь между таблицами. Для этого в окне Server Explorer дважды щелкаем на Database Diagrams и в появившееся окно конструктора добавляем обе созданные таблицы – groups и students. Далее щелкаем на строке, соответствующей полю id в таблице groups, и, удерживая левую кнопку мыши, тянем связь к полю id_group таблицы students. В появившемся диалоговом окне проверяем правильность создания связи: Primary Key Table должно быть установлено в groups и выбран столбец id, а Foreign Key Table должно быть установлено в students и выбран столбец id_group. Если все верно, нажимаем ОК, сохраняем диаграмму и измененные путем добавления связи таблицы БД.

4. Для заполнения таблиц данными необходимо в окне Server Explorer щелкнуть правой кнопкой мыши на имени таблицы и из появившегося меню выбрать пункт Show Table Data. В открывшемся окне можно вводить данные в поля таблицы.

                  1. Создание приложения для работы с базой данных

1. Если БД создается вместе с созданием проекта, то данный шаг можно пропустить. В противном случае в окне Server Explorer выбираем элемент Data Connections (подключения к данным), щелкаем правой кнопкой мыши и из меню выбираем пункт Add Connection… В появившемся окне выбираем ранее созданную БД с помощью кнопки Browse… или вписываем путь к ней.

2. Сначала создадим страницу для работы с данными таблицы groups. Для этого открываем Default.aspx в режиме дизайна. Перетаскиваем из Server Explorer таблицу groups на форму. При этом должны отобразиться 2 элемента: GridView и SqlDataSource. Обратите внимание на маленькую кнопку с направленной вправо стрелкой в правом верхнем углу элемента GridView. Щелчок на ней вызывает панель редактирования, позволяющую форматировать элемент GridView и задавать некоторые его свойства. Активируем возможность редактирования и удаления данных в таблице, отметив пункты Enable Editing и Enable Deleting.

3. Компилируем и запускаем приложение. Оно является полностью работоспособным и позволяет редактировать и удалять информацию в таблице.

4. Добавим на форму элементы управления, которые позволят добавлять данные в таблицу groups.

На форму помещаем элемент управления Label и его свойству Text придаем значение New group name. Идентификатор оставляем без изменения – Label1.

На форму помещаем элемент управления TextBox и его идентификатор оставляем без изменения – TextBox1.

На форму помещаем элемент управления Button и его свойству Text придаем значение Insert. Идентификатор оставляем без изменения – Button1.

5. Дважды щелкаем на кнопке и в появившемся редакторе кода вписываем следующие фрагменты:

а) для работы с данными MS SQL Server необходимо добавить пространство имен System.Data.SqlClient:

using System.Data.SqlClient;

б) в обработчике нажатия кнопки пишем:

protected void Button1_Click(object sender, EventArgs e)

{

// читаем название группы в переменную name

String name = TextBox1.Text;

// значение названия группы обязательно должно быть введено

if (name = = "") return;

// строка запроса на добавление данных

String query = "INSERT INTO groups (name) VALUES ('" + name + "')";

// выполнение запроса на добавление данных

SqlDataSource1.InsertCommand = query;

SqlDataSource1.Insert();

// очистка поля ввода

TextBox1.Text = "";

}

6. Компилируем и запускаем приложение. Теперь оно позволяет не только редактировать и удалять информацию в таблице, но и добавлять новые данные.

Создание страницы для работы с данными таблицы students производится аналогично.

1. Открываем Default.aspx в режиме дизайна (или создаем еще одну Web-форму: выбираем меню File/New File, затем в появившемся диалоговом окне выбираем шаблон Web Form и задаем его имя). Перетаскиваем из Server Explorer таблицу students на форму. При этом должны отобразиться элементы GridView и SqlDataSource. Активируем возможность редактирования и удаления данных в таблице, отметив пункты Enable Editing и Enable Deleting.

2. Добавим элементы управления, которые позволят добавлять данные в таблицу students.

На форму помещаем 7 элементов управления Label, соответствующих таким полям таблицы students, как zachetka, surname, name, patronymic, birthdate, address, tel и id_group, и их свойствам Text придаем соответствующте значения (например, New group или New telephone number). Идентификаторы можно оставить без изменения – Label1…Label7.

На форму помещаем 6 элементов управления TextBox, которые будут соответствовать таким полям таблицы students, как zachetka, surname, name, patronymic, birthdate, address и tel. Их идентификаторы оставляем без изменения – TextBox1…TextBox6

3. Для отображение возможных значений поля id_group необходимо добавить на форму элемент управления DropDownList – раскрывающийся список, который будет содержать значения, уже внесенных в таблицу groups. Также необходимо перетащить на форму из Server Explorer таблицу groups и свойству Visible элемента управления GridView придать значение False. Изменим идентификатор элемента управления SqlDataSource с заданного по умолчанию SqlDataSource2 на SqlGroups, а для соответствующего элемента управления GridView значение свойства DataSourceID Меняем с SqlDataSource2 на SqlGroups.

При отображении на форме элемента управления DropDownList появляется панель редактирования, с помощью которой можно выбрать источник данных для этого элемента управления. Выбираем на панели редактирования пункт Choose Data Source. Так как данные для заполнения раскрывающегося списка содержатся в таблице groups, в появившемся окне мастера настройки источника данных в поле Select a data source выбираем SqlGroups, в поле Select a data field to display in the DropDownList вписываем name (значения какого поля таблицы groups будут отображаться), а в поле Select a data field for the value of DropDownList вписываем id (значения какого поля таблицы groups будут вноситься в поле id_group таблицы students).

4. На форму помещаем элемент управления Button и его свойству Text придаем значение Insert. Идентификатор оставляем без изменения – Button1.

5. Дважды щелкаем на кнопке и в появившемся редакторе кода вписываем следующие фрагменты:

а) для работы с данными MS SQL Server необходимо добавить пространство имен System.Data.SqlClient:

using System.Data.SqlClient;

б) в обработчике нажатия кнопки пишем:

protected void Button1_Click(object sender, EventArgs e)

{

// читаем данные о номере зачетки, фамилии, имени, отчестве,

// дате рождения, адресе и номере телефона студента

// в переменные z, s, n, p, b1, a, t соответственно

String z = TextBox1.Text;

String s = TextBox2.Text;

String n = TextBox3.Text;

String p = TextBox4.Text;

String b1 = TextBox5.Text;

String a = TextBox6.Text;

String t = TextBox7.Text;

// читаем данные о группе из раскрывающегося списка

// в переменную g

int g = Convert.ToInt16(DropDownList1.SelectedValue);

// проверяем, все ли обязательные данные введены

if (z == "" || s == "" || n == "" || a == "" || b1 == "") return;

// конвертируем дату рождения из строки в тип DateTime

DateTime b = Convert.ToDateTime(b1);

// строка запроса на добавление данных

String query = "INSERT INTO students (zachetka,surname,name,patronymic,birthdate,address,tel,id_group) VALUES ('" + z + "','" + s + "','" + n + "','" + p + "','" + b + "','" + a + "','" + t + "'," + g + ")";

// выполнение запроса на добавление данных

SqlDataSource1.InsertCommand = query;

SqlDataSource1.Insert();

// очистка полей ввода

TextBox1.Text = "";

TextBox2.Text = "";

TextBox3.Text = "";

TextBox4.Text = "";

TextBox5.Text = "";

TextBox6.Text = "";

TextBox7.Text = "";

}

}

6. Компилируем и запускаем приложение.