Содержание
Введение
1. Исследовательская часть
1.1 Описание предметной области
1.2 Особенности создания страниц на языке APS.NET
1.3 Особенности создания и обращения к базам данных
2. Конструкторская часть
2.1 Структура базы данных
2.2 Принцип работы первой страницы сайта
2.3 Принцип работы второй страницы сайта
2.4 Принцип работы третьей страницы сайта
2.5 Принцип работы четвертой страницы сайта
2.6 Принцип работы пятой страницы сайта
2.7 Принцип работы шестой страницы сайта
2.8 Принцип работы седьмой страницы сайта
2.9 Принцип работы восьмой страницы сайта
2.10 Принцип работы девятой страницы сайта
2.11 Принцип работы десятой страницы сайта
3. Технологическая часть
3.1 Настройка приложения
3.2 Работа с сайтом
3.3 Системныетребования
Заключение
Список использованнойлитературы
Введение
Целью данной курсовой научно-исследовательской работы студентаявляется создание сайта на языке ASP.NET 2005, который позволяет просматриватьи вносить изменения в базу данных студентов. ASP.NET – это часть технологии.NET,используемая для написания мощных клиент – серверных интернет приложений. Онапозволяет создавать динамические страницы HTML. Динамическими принято называтьweb – страницы, которые перед отправкой клиенту проходят цикл обработки насервере. ASP.NET возникла в результате объединения более старой технологии ASPи.NET Framework. Данная работа состоит из четырех динамических страниц, частьиз которых взаимодействует с базой данных. Для работы с базой данныхиспользуется язык структурированных запросов – SQL (Structured Query Language).
1. Исследовательская часть
1.1 Описание предметной области
Данная работа использует язык APS.NET 2005, который позволяетвыполнять обработку событий, вследствие чего старицы являются динамическими. Приобработке некоторых событий, происходит соединение с базой данных и выполнениеразличных запросов и операций. Следствием таким запросов может быть изменениябазы данных, добавление новых данных в базу, вывод данных из базы на дисплей. Длявзаимодействия с базой данных используется пространство имен System.Data.SqlClient.
1.2 Особенности создания страниц на языке APS.NET
Любая страница состоит из двух частей. Первая часть – Design,представляет собой пустое пространство, на котором можно разместить элементыуправления. Вторая часть – Source, представляет собой код языка ASP.NET.Добавление нового кода, происходит при добавлении нового объекта в окне Design,либо при ручном заполнении. Для того чтобы добавить новый элемент в окноDesign, его необходимо выбрать из вкладки Toolbox, и перетащить на форму. Поаналогии с C#, имеется окно Properties, в котором можно задать те или иныепараметры для элементов управления, или задать те или иные события.
Каждая страница начинается со следующего кода: « ». Где тег “». Этот тег дает указание компилятору обрабатывать элементы управлениястраницы. Данный тег имеет свойство runat, для которого установлено значение“server” (других значений не бывает). При использовании этого свойства элементуправления обрабатывается компилятором, а не передается браузеру «как есть».
При двойном щелчке на объекте в окне Design откроется файл, сназванием аналогичным названию страницы, но отличающийся от нее тем, чтодобавляется выражение типа «.cs» в конце расширения файла. Также появится код,который соответствует событию по умолчанию для данного элемента. В данном файлеведется разработка кода уже не на языке ASP.NET, а на том языке, который вывыбрали, для данной работы – это язык C#. Задание и обращение к свойствам,методам ничем не отличается от обращения к ним же при написании любой другойпрограммы на конкретно выбранном языке.
Метод Response.Write()
Данный метод отправляет в браузер HTML код. Этот метод являетсяполезным при выведении коротких сообщений. К примеру, он может использоватьсяпри проверке введенных значений для вывода результата.
1.3 Особенности создания и обращения к базамданных
Базы данных прошли долгий путь развития. Вначале все данныехранились в простых файлах. По мере увеличения объемов данных встал вопрос отом, как получить быстрый доступ к нужной информации. Для этого данные сталииндексироваться. Другой вопрос – как избежать дублирования, когда одни и те жеданные хранятся в разных местах. Сегодня мощная промышленная СУБД немыслима безсистем защиты информации, журналирования, транзакции и хранимых процедур.
Данные в СУБД хранятся в таблицах. Таблица состоит из полей изаписей. Запись – единица хранения данных, строка таблицы. Для работы с базамиданных используется язык структурированных запросов – SQL (Structured QueryLanguage). Команды этого языка называются запросами. Запросы служат дляполучения данных, для создания и изменения структуры таблиц, добавления,удаления и обновления записей и многого другого. Последовательность командможет храниться прямо на сервере СУБД в виде хранимой процедуры. Либозадаваться в виде набора команд, которые всегда проходят стадию компиляции.
Для создания базы данных в окне Sever Explorer нужно нажать напункт Data Connections правой кнопкой мыши, и в контекстном меню выбрать CreateNew Sql Database.
/>
Рис. 1. Создание базы данных
На (рис. 1) показан пример создания базы данных. Для того чтобыуказать компилятору, что база находится на локальном компьютере, в поле «Servername» нужно вписать «.\SQLExpress» или «(local)». Имя базы данных указывается вграфе «New database name». После нажатия кнопки «ОК», база данных сохранитсяпод указанным именем с расширением «.mdf».
После создания базы данных, в ней необходимо создать таблицы дляхранения данных. Таблицу можно сделать и программно, и через окно «ServerProperties». При выполнении такой последовательности действий появится узелсозданной базы. Его нужно раскрыть, и щелкнуть мышью на пункт Tables, вконтекстном меню нужно выбрать «Add New Table». Появится диалоговое окно, вкотором нужно указать название столбца, тип данных, которые будут храниться внем, и разрешение на хранение в ячейке нулевых значений. Бывают такие ситуации,что при создании новых строк, значения в каком-то определенном столбцеавтоматически увеличивались, этого можно добиться путем выбора пункта «SetPrimary Key».
Объект Connection
Объект Connection для соединения с базой данных нуждается в строкесоединения для указания пути к СУБД. Свойства класса Connection указаны втаблице:Свойство Описание DataSource Имя экземпляра базы сервера при использовании SqlConnection Database Возвращает имя базы данных, используемой в объекте Connection после открытия AttachDbFilename Указывает путь к файлу, который является локальной базой данных ConnectionString Строка соединения с СУБД
Метод Open()
Данный метод вызывается после создания объекта SqlConnection, сзаданной строкой соединения — ConnectionString. Метод Open() пытается установитьсоединения с базой данных. Если соединения установить не удается, то появляетсясоответствующее окно с сообщением об ошибке.
Использование объекта SqlCommand
Объект SqlCommand исполняет запрос SQL, который может быть в формевстроенного текста, процедуры сервера или прямого доступа к таблице. Если этозапрос на выборку данных SELECT, то данные обычно помещают в DataSet или вDataReader, но также можно производить и ручные манипуляции. Запросом надобавление данных является INSERT, на изменение UPDATE, на удаление DELETE.
Процедуры сервера нуждаются в параметрах. Они хранятся в коллекцииParametrs и имеют тип SqlParametr. Текстовые команды также могут получатьпараметры, перед которыми ставится префикс @.
«SELECT id FROM [sTudenT] WHERE SecondName = @DropDownList1.Text»
Или же можно использовать форматированный вывод:
string.Format(«SELECT id FROM [sTudenT] WHERE SecondName ='{0}'», DropDownList1.Text);
Метод ExecuteNonQuery()
Данный метод применим к объектам типа SqlCommand. С помощьюданного метода можно выполнять любые операции с базами данных, которые несвязаны с запросом или получением данных, например, обновление, удалениезаписей, создание и изменение таблиц, создание процедур сервера. Она возвращаетколичество измененных записей в том случае, если выполняются команды Select,Update, Delete.
Метод ExecuteScalar()
Данный метод применим к объектам типа SqlCommand. Этот методвозвращает результат запроса в случае, если это единственное значение.
Рассмотрим пример:
string.Format(«SELECT id FROM [sTudenT] WHERE SecondName ='{0}'», DropDownList1.Text);
В результате будет возвращено значение поля “id” базы даных, спараметром SecondName равным значению, выбранному из списка. Данный методработает гораздо быстрее метода ExecuteReader().
Метод ExecuteReader()
Данный метод выполняется, если нужно получить табличные данные.Результат выполнения – курсор, в котором можно двигаться только от начала доконца.
В результате выполнения метода ExecuteReader() объекта Commandсоздается объект DataReader. После использования данного метода необходимозакрывать соединения с базой, иначе такой процесс останется активным и будетзанимать ресурсы. Закрыть соединение можно двумя способами. Первый – вызвать перегруженныйметод ExecuteReader(), который принимает параметр типа CommandBehavior слзначением CommandBehavior.CloseConnection. В таком случае необходимоперелистать полученную выборку от начала до конца, и соединение закроется,когда будет достигнут конец.
В Visual Studio 2005 придусмотрен интерфейс автоматического выводаопределнного столбца базы данных в такие элементы управления, к примеру, какDropDownList. На следующий рисунках изображен пример такого интерфеса:
/>
Рис. 2. Выбор источника данных
Как видно на (рис. 2), сперва, выбирается источник данных. Этотисточник создается автоматически.
/>
Рис. 3. Указание пути к базе данных
На (рис. 3) выбирается строка присоединения к базе данных.
/>
Рис. 4. Выбор столбца
На (рис. 4) выбирается столбец, который будет отображен вконкретном элементе управления. При компиляции страницы, в выбранном элементеуправления, будет находится содержания выбранного столбца. Такой методзначительно упрощает разработку приложений.
2. Конструкторская часть
2.1 Структура базы данных
База данных состоит из трех таблиц. Таблица sTudenT служит дляхранения фамилии, имени и отчества студента. Имеет следующую структуру:id SecondName FirstName oT4ecTBo
Соответственно в столбец SecondName добавляется фамилия студента,в столбец FirstName добавляется имя студента, в столбец oT4ecTBo добавляетсяотчество студента. Столбец id задан как Primary Key, сведовательно значенияэтого столбца формируются автоматически.
Таблица subjects состоит из двух столбцов id и Name.Соответственно id формируется автоматически, а в столбец Name заносятсяназвания предметов.id Name
Таблица markbook имеет более сложную структуру, она состоит из 4столбцов. id idst idsubj mark
Столбец id формируется автоматически. Столбец idst служит длязанесения туда идентификационного номера студента, который берется из таблицыsTudenT. Столбец idsubj служит для занесения в него идентификационного номерапредмета, который берется из таблицы subjects. Столбец mark служит для занесенияоценки по определенному предмету. Все столбцы имеют формат int.
2.2 Принцип работы первой страницы сайта
Первая страница является своего рода навигатором по сайту. Онасостоит из трех объектов типа HyperLink (ссылка), которые размещены на элементеуправления Panel. Цель каждой ссылки – это перенаправление на другую страницу.Для того, чтобы при нажатии на ссылку она перенаправляла на нужную страницунеобходимо задать в окне Properties свойство NavigateUrl.
2.3 Принцип работы второй страницы сайта
Вторая страница служит для заполнения таблицы markbook. В окнеDesign распложены два элемента DropDownList, один TextBox и кнопка Button. Элементы DropDownList берутинформацию из таблиц sTudenT и subjects посредством интерфейса автоматическоговывода столбца. Первый DropDownList отображает фамилии студентов, второйназвания предметов.
При загрузке страницы происходит соединение с базой данныхпосредством метода Open(). При нажатии на кнопку происходит проверкаправильности заполнения данных, то есть оценка должна находиться в интервале от1 до 5, оценку нельзя ставить по одному и тому же предмету два раза. Затем,если данные введены правильно, создаются две строки запроса, первая выбирает idстудента из таблицы sTudenT, вторая id предмета из таблицы subjects. Далееосуществляется сам запрос и при помощи метода ExecuteScalar() значения idприсваиваются соответствующим переменным. Далее выполняется запрос надобавления данных, введенных на странице, в таблицу markbook, при помощи методаExecuteNonQuery().
2.4 Принцип работы третьей страницы сайта
Третья страница служит для создания новых студентов и новыхпредметов. В окне Design расположены четыре элемента TextBox и два Button. Перваякнопка служит для занесения нового студента в базу данных, вторая для занесениянового предмета. При загрузке страницы происходит соединение с базой данныхпосредством метода Open(). При нажатии на одну из кнопок происходит проверкавведенных данных, то есть поля нельзя оставлять пустыми. Далее создается запросна добавление данных.
string.Format(«INSERT INTO [subjects] ([Name]) VALUES('{0}')», subj);
А затем при помощи метода ExecuteNonQuery(), данные заносятся всоответствующую таблицу. При успешном добавлении выдается соответствующеесообщение.
2.5 Принцип работы четвертой страницы сайта
Данная страница служит для просмотра успеваемости студента. В окнеDesign расположены элементы: DropDownList, Button и Table. Элемент DropDownListиспользует интерфейса автоматического вывода столбца и выводит список фамилийстудентов, которые он берет из таблицы sTudenT. При загрузке страницыпроисходит соединение с базой данных посредством метода Open(). Далеевыбирается id студента и id предметов из таблиц sTudenT и subjects. Причем длялюбого студента соответствует несколько id предметов, соответственно, для тогочтобы их вывести создается объект SqlDataReader который считывает данныепострочно при помощи метода Read(). Для подсчета количества строк используетсяцикл, в котором значение переменной при прочитывании строки увеличивается на 1.Это нужно для того, чтобы в дальнейшем знать длину массива, в котором будутхраниться id строк таблицы markbook. При завершении цикла соединениезакрывается. Далее соединение снова открывается, и цикл повторяется, в котором вмассив id заносятся id строк, для которых прошла выборка, то есть каждомустуденту соответствует несколько строк из таблицы markbook. В этом же циклесоздаются запросы на выборку id предметов и оценок по этим предметам для строк,прошедших выборку. Затем соединение опять закрывается, следовательно, его нужнозаново открыть. Далее запускается цикл, цель которого заменить id предметов нареальные названия предметов и сохранить их в массив. После всех выполненныхопераций необходимо заполнить таблицу. Таблица имеет формат:№ Предмет Оценка
Заполнение таблицы происходит следующим образом: создается объекттипа TableRow (строка), в ней создаются ячейки TableCell. В которые можнозаписывать данные через свойство Cell.Text. Все операции делаются в цикле, таккак количество строк одна или больше.
2.6 Принцип работы пятой страницы сайта
Пятая страница служит для удаления студента из базы данных. Наэтой странице расположено два элемента: DropDownList, в котором происходитвыбор фамилия студента, и Button, при нажатии на который происходит самоудаление данных. При удалении, данные удаляются из двух таблиц: sTudenT иmarkbook. Для удаления данных используется запрос с ключевым словом «DELETE».Из таблицы sTudenT данные удаляются легко, а для удаления данных из таблицыmarkbook выполняются следующие операции: из таблицы sTudenT выбирается idстудента, затем делается запрос на отбор строк в таблице markbook,соответствующих этому id (по столбцу idst), после этого выбираются id строк изтаблицы markbook и только потом производится запрос на удаление. Причемколичество строк может быть больше чем одна, следовательно для формированиясписка конкретных строк применяется метод ExecuteReader(). Данные удаляются припомощи метода ExecuteNonQuery(). После выполнения всех операций выводитсясообщение об удачном удаления студента из таблицы.
2.7 Принцип работы шестой страницы сайта
Седьмая страницы служит для поиска студента по базе данных. В окнеDesign находятся три элемента: TextBox, Button, Table. В элемент TextBoxвводится фамилия студента для поиска. Элемент Table используется для выводаданных при успешном нахождении студента. Процедура поиска заключается внахождении id студента по введенным данным в поле TextBox. Соответственноделается следующий запрос:
string.Format(«SELECT id FROM [sTudenT] WHERE SecondName ='{0}'», SecondName);
Если id студента был найден, соответственно по величине он будетбольше нуля, если нет, то он будет равен -1. Далее, если студент был найден, топо найденному id осуществляются запросы на выборку имени и отчества из той жетаблицы sTudenT. Затем выдается сообщение об успешном нахождении студента. Длявывода данных в таблицу используется последовательность действий аналогичная пункту2.5.
2.8 Принцип работы седьмой страницы сайта
Седьмая страница сайта используется для изменения фамилии имени иотчества студента. Все операции выполняются с таблицей sTudenT. Для измененияданных используется запрос с ключевым словом «UPDATE». В окне Design приложениярасположены три элемента типа TextBox, один DropDownList и один элемент типаButton. В элементе DropDownList располагаются фамилии всех студентов из столбцаSecondName. Три элемента типа TextBox служат для введения новых данных. Принажатии на кнопку происходит проверка введенных данных, то есть нельзя вводитьстудента с фамилией, которая уже используется в базе, нельзя вводить пустыеполя. Для изменения данных используется запрос вида:
string.Format(«UPDATE [sTudenT] SET SecondName = '{0}',FirstName = '{1}', oT4ecTBo = '{2}' WHERE id = '{3}'», new_sec_name,new_fir_name, new_oT4ecTBo, id);
Как видно одним из параметров является id студента. Данныйпараметр находится путем запроса:
string.Format(«SELECT id FROM [sTudenT] WHERE SecondName ='{0}'», DropDownList1.Text);
При успешном изменении данных выводится соответствующее сообщение.
2.9 Принцип работы восьмой страницы сайта
Данная страница используется для изменения оценок студента втаблице markbook. Для того чтобы изменить оценку необходимо получить idпредмета и id студента. Эти id берутся из таблиц sTudenT и subject. Соответственноделаются два запроса. Параметром для первого запроса, который выбирает idстудента, является текущее значение элемента DropDownList1, а для второготекущее значение элемента DropDownList2. Затем при помощи ключевого слова«UPDATE» изменяется таблица. Запрос на изменение выглядит следующим образом:
string.Format(«UPDATE [markbook] SET mark = '{0}' WHERE idst= '{1}' AND idsubj = '{2}'», TextBox1.Text, idst, idsubj);
При успешном изменении данных, выводится соответствующеесообщение.
2.10 Принцип работы девятой страницы сайта
Данная страница служит для удаления предметов из базы данных. Вокне Design расположены только два элемента: DropDownList и Button.Соответственно в элемент DropDownList заносятся данные из таблицы subjects, аименно столбец Name. Принцип работы данной страницы заключается в следующем:сначала по значению предмета, выбранного в элементе DropDownList, выполняетсязапрос на получение id предмета из таблицы subjects, затем по полученному idвыбираются все подходящие записи в таблице markbook. Выборка данныхпроизводится при помощи метода Read() принадлежащего классу SqlDataReader.Полученные данные заносятся в массив. Затем выполняется сам запрос на удалениеподходящих строк их таблицы markbook. После выполнения всех выше описанныхопераций выполняется операция на удаление строки из таблицы subjects.
2.11 Принцип работы десятой страницы сайта
Последняя страница сайта служит для изменения названия предмета. Вокне Design расположены два элемента DropDownList и Button. Соответственно вэлемент DropDownList заносятся данные из таблицы subjects, а именно столбецName. Затем при помощи запроса с ключевым словом «SELECT» выполняется запрос напоиск id предмета в таблице subjects. После этого выполняется проверкаправильности ввода, а именно нет ли совпадающих предметов, не пустое ли поле ит.д. Если все проверки были пройдены успешно, то выполняется запрос наобновление таблицы subjects, для этого используется запрос с ключевым словом«UPDATE». Если все было выполнено успешно, то выдается соответствующеесообщение, если нет, то выдается соответствующее сообщение об ошибке.
3. Технологическая часть
3.1 Настройка приложения
Для настройки приложения необходимо изменить путь к базе данных.Данный путь указывается на каждой странице сайта и выглядит следующим образом:
@«Data Source=.\SQLEXPRESS;AttachDbFilename='C:\путь к базеданных\ Database.mdf';Integrated Security=True;User Instance=True»;
После изменения пути, приложение будет работать. Для запускаприложения необходимо разместить сайт в домене, поддерживающем язык ASP.NET,либо скомпилировать приложение. Соответственно при компиляции будет запущенвиртуальный сервер, на котором будет запущено данное приложение.
3.2 Работа с сайтом
При запуске приложение выглядит следующим образом:
/>
Рис. 5. Стартовая страница
Если в базе нет никакой информации, то ее нужно добавить, дляэтого нужно щелкнуть на ссылку «Добавить новые данные». Появится окно, вкотором можно добавить нового студента, или новый предмет. Диалоговое окноизображено на рисунке:
/>
Рис. 6. Добавление нового студента
Для добавления нового студента необходимо заполнить все поля инажать на кнопку подтвердить, после нажатия появится соответствующее сообщение.Для добавления нового предмета необходимо проделать аналогичные действия, тоесть ввести название предмета и также нажать на кнопку подтвердить.
После того как предметы и студенты были добавлены, необходимозаполнить поля успеваемости студента, то есть нужно ввести оценки по каждому изпредметов. Это можно сделать на следующей странице:
/>
Рис. 7. Заполнение успеваемости
Для заполнения успеваемости студента, необходимо выбратьопределенного студента из раскрывающего списка, затем необходимо выбратьсоответствующий предмет, вести оценку и нажать кнопку подтвердить. Послезаполнения успеваемости можно посмотреть результат на следующей странице.
/>
Рис. 8. Успеваемость студента
Соответственно чтобы посмотреть информацию по каждому изстудентов, его необходимо выбрать из списка, и нажать на кнопку. Появитсятаблица, в которой наглядно видно название предмета и оценку по этому предмету.
Бывают такие ситуации, что название предмета или инициалы студентабыли введены неверно, для данных целей предусмотрены страницы «изменить ФИОстудента» и «изменить название предмета». Страница для изменения «ФИО студента»выглядит следующим образом:
/>
Рис. 9. Изменение ФИО студента
Для того чтобы изменить ФИО, необходимо выбрать студента изсписка, затем в поля «Новая фамилия», «Новое имя», «Новое отчество», необходимоввести данные. После ввода необходимо нажать на кнопку изменить, если вы хотитеизменить информацию, или нажать на ссылку «вернуться на главную», если нехотите вносить изменений. После внесения изменений появится сообщение обошибке, если произошли ошибки ввода данных, либо сообщение об успешномвыполнении данной операции. Для изменения названия предмета предусмотренаследующая страница:
/>
Рис. 10. Изменение названия предмета
Принцип работы ее идентичен странице служащей для изменения ФИОстудента. Также нужно выбрать предмет, затем ввести новое значение и нажать накнопку изменить.
Бывают такие ситуации, что необходимо удалить того или иногостудента из базы данных, или удалить какой-либо предмет. Для этих целейиспользуются страницы «Удалить студента», «Удалить предмет». На рис. 11 показанвнешний вид станицы «Удалить студента»:
/>
Рис. 11. Удаление студента
Для того чтобы удалить студента необходимо его выбрать из списка инажать на кнопку удалить. После нажатия будет выведено соответствующеесообщение.
Страница «Удалить предмет» практически идентична странице «Удалитьстудента». Ее внешний вид представлен ниже:
/>
Рис. 12. Удаление предмета
Для удаления предмета, выбирается соответствующий предмет, и посленажатия на кнопку удалить он будет удален.
Данный сайт позволяет производить поиск студентов по базе.Интерфейс изображен на рис. 13:
/>
Рис. 13. Поиск студента
Для того чтобы найти студента, необходимо ввести его фамилию. Еслистудент был найден, то выводится соответствующее сообщение об успешномнахождении студента. Также будет отображена успеваемость студента в таблице.
3.3 Системные требования
Для нормального функционирования клиентского приложения требуется:операционная система Windows® 98/2000/XP, процессор Intel® Pentium 800 МГц, 128Мб ОЗУ, 32 Мб Direct X – совместимая 3D видеокарта, 1 Мб свободного места нажестком диске, клавиатура, мышь, Microsoft.NET Framework 2.0.
Заключение
Данная курсовая научная работа показывает возможности языка ASP.NET2005. Данный язык на данный момент является самым современным и самымфункциональным по сравнению с другими языками. Некоторые моментыавтоматизированы, что облегчает разработку приложений. Создание баз данныхавтоматизировано. Просмотр баз данных можно вести прямо из среды разработки,что является довольно удобным. Запросы к базе данных являются простыми дляпонимания, следовательно, их легко писать. Данную работу можноусовершенствовать, к примеру, добавив в базу данных такие столбы как «семестр»,«преподаватель», «год сдачи экзамена» и т.д. Также можно усовершенствоватьдизайн приложения.
Список использованной литературы
1. Гаряка А.А. Основы ASP.NET 2.0: Учебное пособие / А.А. Гаряка. –М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знаний,2007. – 296 с.: ил.-(Основы информационных технологий)