LAV_ СИТспец_маг2014-15 / Лаб_раб-модуль1 / Лаб2 / Лаб №2
.docЛабораторная работа №2
Работа с базами данных MS SQL Server в Visual Studio 2005
-
Создание базы данных
Примечание. Далее описывается способ создания базы данных непосредственно из среды 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. Если БД создается вместе с созданием проекта, то данный шаг можно пропустить. В противном случае в окне 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. Компилируем и запускаем приложение.