Автор работы: Пользователь скрыл имя, 27 Марта 2012 в 18:06, курсовая работа
Для успешного функционирования различных организаций требуется наличие развитой информационной системы, которая автоматизирует сбор, хранение, обработку и манипулирование информацией. В связи с тем, что Интернет-технологии практически повсеместно внедряются в общественную жизнь, актуально будет использование веб-приложений и веб-сервисов. Основным источником данных в таком будет оставаться база данных. Поэтому важен вопрос организации взаимодействия приложения и базы данных.aint
Введение 3
1. Обзор технологии .NET 5
1.1 Составные части .NET 6 6
1.2 Основные возможности ASP.NET 7 7
1.3 Обзор ADO.NET 9 9
2. Разработка web-страницы с использованием ADO.NET 11
2.1 Особенности создания страниц на языке APS.NET 11
2.2 Особенности создания и обращения к базам данных 13 11
2.3 Иерархия объектов страницы 17 11
2.4 Объекты, используемые в Web-странице 18 12
2.5 Сведения о Constraint 20 13
3. Разработка страницы магазина аудиодисков 21 14
Заключение 22 15
Список литературы 23 16
Приложение №1 (исходный текст программы) 24
Приложение №2 (снимки программы) 31 17
Технологией .NET поддерживаются несколько типов баз дынных, в том числе Microsoft Access, которая и будет использована для разработки приложения. Создать базу данных можно в приложении Microsoft Access, входящего в состав пакета Microsoft Office.
После создания базы данных, в ней необходимо создать таблицы для хранения данных. Таблицу можно сделать и программно, и через окно «Server Properties». При выполнении такой последовательности действий появится узел созданной базы. Его нужно раскрыть, и щелкнуть мышью на пункт Tables, в контекстном меню нужно выбрать «Add New Table». Появится диалоговое окно, в котором нужно указать название столбца, тип данных, которые будут храниться в нем, и разрешение на хранение в ячейке нулевых значений. Бывают такие ситуации, что при создании новых строк, значения в каком-то определенном столбце автоматически увеличивались, этого можно добиться путем выбора пункта «Set Primary 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 * FROM [Albums] WHERE AuthorsId = @DropDownListAuthor.Value "
Или же можно использовать форматированный вывод:
string.Format("SELECT * FROM [Albums] WHERE AuthorsId = '{0}'", DropDownListAuthor.Value);
Метод ExecuteNonQuery()
Данный метод применим к объектам типа SqlCommand. С помощью данного метода можно выполнять любые операции с базами данных, которые не связаны с запросом или получением данных, например, обновление, удаление записей, создание и изменение таблиц, создание процедур сервера. Она возвращает количество измененных записей в том случае, если выполняются команды Select, Update, Delete.
Метод ExecuteScalar()
Данный метод применим к объектам типа SqlCommand. Этот метод возвращает результат запроса в случае, если это единственное значение.
Рассмотрим пример:
string.Format("SELECT * FROM [ALBUMS] WHERE AuthorsId = '{0}'", DropDownListAuthor.value);
В результате будет возвращено значение полей базы даных, с параметром AuthorsId равным значению, выбранному из списка. Данный метод работает гораздо быстрее метода ExecuteReader().
Метод ExecuteReader()
Данный метод выполняется, если нужно получить табличные данные. Результат выполнения – курсор, в котором можно двигаться только от начала до конца.
В результате выполнения метода ExecuteReader() объекта Command создается объект DataReader. После использования данного метода необходимо закрывать соединения с базой, иначе такой процесс останется активным и будет занимать ресурсы. Закрыть соединение можно двумя способами. Первый – вызвать перегруженный метод ExecuteReader(), который принимает параметр типа CommandBehavior сл значением CommandBehavior.
В Visual Studio 2010 придусмотрен интерфейс автоматического вывода определнного столбца базы данных в такие элементы управления, к примеру, как DropDownList.
Так как ADO.NET представляет собой набор классов для организации взаимодействия клиентского приложения с базой данных, то важно рассмотреть объектную модель ADO.NET. При организации доступа к данным с ее помощью исключительно важную роль играют объекты.
Объекты, расположенные в левой части, называются подсоединенными и необходимы для управления соединением, транзакциями, выборкой данных и передачей изменений данных в БД. Они непосредственно взаимодействуют с базой данных. Объекты, расположенные в правой части, называются отсоединенными. Они позволяют работать с данными автономно.
Отсоединенные объекты не взаимодействуют со всеми объектами левой части непосредственно подсоединенными для получения данных из БД. Можно сказать, что одной из форм взаимодействия этих двух групп является использование объектом DataAdapter объекта D
2.4 ОБЪЕКТЫ, ИСПОЛЬЗУЕМЫЕ В WEB-СТРАНИЦЕ
Так как создаваемая страница будет небольшая, то используемых объектов для работы с данными будет немного.
Объект GridView позволяет просматривать данные в виде наборов записей и столбцов. Отображает значения источника данных в таблице, где каждый столбец представляет поле, а каждая строка — запись. Элемент управления GridView позволяет выбирать, сортировать и изменять эти записи. Фактически, он представляет собой аналог таблицы БД, размещенный в памяти. Достоинством такой организации является возможность автономной работы с данными. Это означает, что после установления соединения с базой данных, чтения данных и заполнения ими объекта GridView можно отключиться от источника данных и продолжать работать с ним в автономном режиме. Такая возможность чрезвычайно полезна при организации Web-приложений, которые должны быть хорошо масштабируемыми и ориентированы на многопользовательский режим работы. При этом, однако, возникают и побочные эффекты, один из которых связан с тем, что человек, работающий с автономным набором данных, не может увидеть изменений, вносимых в данные в этот момент другими пользователями.
Объект DataColumn представляет собой столбец объекта DataTable. Набор же всех столбов объекта DataTable представляет собой коллекцию Columns. Посредством этого объекта можно получить доступ к значению ячейки соответствующего столбца.
Объект DataRow представляет собой строку объекта DataTable. Набор всех строк этого объекта представляет собой коллекцию Rows. DataRow очень часто используется для доступа к значению конкретного поля определенной записи. При этом применяется свойство Item.
2.5 СВЕДЕНИЯ О CONSTRAINT
Ограничение — это правило, используемое для сохранения целостности данных в DataTable. Например, при удалении значения, используемого в одной или нескольких связанных таблицах, ForeignKeyConstraint определяе
Базовый конструктор Constraint не используется. Ограничения первичного или уникального ключа создаются с помощью конструктора UniqueConstraint, а ограничения внешнего ключа — с помощью конструктора ForeignKeyConstra
Для создания Интернет-страницы была выбрана среда разработки VS 2010 и платформа NET 3.5, язык программирования C#, в качестве базы данных использовалась база, созданная в Microsoft Office Access 2007. При создании графического интерфейса использовались элементы Label, DropDownList, TextBox, GridView, а также класс UniqueConstraint.
Класс UniqueConstraint используется для проверки уникальности названия альбома в разрезе исполнителей, без прямой записи данных в базу.
Пользователь вводит интересующее его название альбома в текстовое поле и нажимает клавишу «Enter».
После проверки уникальности названия, в строке состояния отображается соответствующий текст.
Исходные тексты программы в приложении №1.
Снимки экрана рабочей программы в приложении №2.
ЗАКЛЮЧЕНИЕ
В результате курсовой работы были обогащены знания в области разработки Web-приложений с использованием ADO.NET. Большое внимание уделялось общим теоретическим вопросам по данной технологии, позволяющим лучше разобраться и глубже понять материал.
На основании полученных знаний была разработана Интернет-страница каталога музыкального магазина. В ней продемонстрирована работа различных объектов, в частности, объекта UniquieConstraint.
Были углублены знания в программировании на языке C#, получен опыт работы с MS Visual Studio 2010, Access.
Список используемой литературы
Приложение № 1
[Файл Default.aspx]
<%@ Page Title="Домашняя страница" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeBehind="Default.aspx.cs" Inherits="WebApplication1._
<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="
<style type="text/css">
.style1
{
width: 440px;
}
.style4
{
width: 136px;
}
.style5
{
color: #0000FF;
width: 268px;
}
.style6
{
width: 268px;
}
.style7
{
width: 136px;
height: 72px;
}
</style>
</asp:Content>
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="
<table style="width: 60%;" frame="above"><tr><td class="style1">
<asp:AccessDataSource ID="AccessDataAlbum" runat="server" DataFile="~/App_Data/
InsertCommand="INSERT INTO Albums(Artist, AlbumName, AlbumYear, GenreAlbum, Price) VALUES (?, ?, ?, ?, ?)"
SelectCommand="SELECT Albums.AlbumName, Albums.AlbumYear, Genres.GenreName AS GenreAlbum, Albums.Price FROM (Albums INNER JOIN Genres ON Albums.GenreAlbum = Genres.Id) WHERE (Albums.Artist = ?)">
<InsertParameters>
<asp:ControlParameter ControlID="DropDownListArtist" DefaultValue="Empty" Name="?" PropertyName="SelectedValue" />
<asp:ControlParameter ControlID="TextBoxAlbumName" DefaultValue="Empty" Name="?" PropertyName="Text" />
<asp:ControlParameter ControlID="TextBoxAlbumYear" DefaultValue="Empty" Name="?" PropertyName="Text" />
<asp:ControlParameter ControlID="DropDownListGenre" DefaultValue="Empty" Name="?" PropertyName="SelectedValue" />
<asp:ControlParameter ControlID="TextBoxPrice" DefaultValue="0" Name="?" PropertyName="Text" />
</InsertParameters>
<SelectParameters>
<asp:ControlParameter ControlID="DropDownListArtist" Name="Artist" PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
</asp:AccessDataSource>
<asp:AccessDataSource ID="AccessDataGenres" runat="server"
DataFile="~/App_Data/
SelectCommand="SELECT [Id], [GenreName] FROM [Genres]">
</asp:AccessDataSource>
<asp:AccessDataSource ID="AccessDataArtist" runat="server"
DataFile="~/App_Data/
SelectCommand="SELECT [Id], [ArtistName] FROM [Artists]">
</asp:AccessDataSource>
</td></tr><tr><td class="style1">
<table style="width: 128%; height: 113px;" border="2" frame="below" rules="all" title="Новый альбом"><tr><td class="style7">
<asp:Label ID="Label1" runat="server" Text="Исполнитель:" style="font-weight: 700; font-size: small"></asp:Label>