Лабораторная работа №1 Тема: Создания информационной базы данных корпоративной сети




Скачать 256.81 Kb.
НазваниеЛабораторная работа №1 Тема: Создания информационной базы данных корпоративной сети
страница2/2
Дата публикации04.03.2013
Размер256.81 Kb.
ТипЛабораторная работа
uchebilka.ru > Банк > Лабораторная работа
1   2
Тема: Создания монолитного приложения

Цель: Освоить принципы создания приложения для взаимодействия с базой на основе .NET технологий.

^ ХОД РАБОТЫ

  • Запустите среду Microsoft Visual Studio 2010

Пуск – Программы - Microsoft Visual Studio 2010



После загрузки среды разработки необходимо создать новый проект (На окне приветствия «Создать проект или Файл – Создать – проект»)



Как язык разработки рекомендуется выбрать С#. Тип приложения – Приложение Windows Forms

Укажите название проекта и место где он будет храниться, после чего нажмите ОК.

Откроется окно с внешним видом формы



Для работы с базами данных в Visual Studio 2010 существует несколько компонентов доступа.

Для примера будем использовать: источники данных



Создадим новый источник данных



Выбираем источник данных как база данных



Определяем, что используем базу данных как набор данных



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



Укажем тип сервера и поставщика услуг



Укажите сервер подключения (по умолчанию 172.16.7.141) и базу, с которой будет связана программа



Подтверждаете создание соединения



Сохраняете строку соединения



Последним шагом у вас является выбор объектов, которые будут использоваться соединением



По окончанию созданы связи с вашей базой данных



Обратите внимание – чтобы добавить элемент на поле можно просто перетащить – и будет создан соответствующий элемент по умолчанию

Можно выполнить создание интерфейса используя технологию Drag&Drop – перетягивая элементы с панели «Источники данных» а можно создать вручную.

  • Получения Доступа к данным вручную

^ Работа с данными на форме

Во первых, необходимо создать элемент который будет связывать данные в хранилище с компонентами на форме. Процедура связи происходит следующим образом


Компонеты

TableAdapter

BindingSource



DataSet



БД



Выбор данных и управление ими на основе запросов

Отображения данных

Компонент для того чтобы управлять связью с помощью компонентов

Компонент для связи с БД

Сами данные


Для создания вручную необходимо создать элемент типа TextBox – и установить связь между ним и данными, например

  1. Создадим компонент управления DataSet – на панели элементов, вкладка ДАННЫЕ- компонент DataSet. И расположим его на форме. Он добавиться в список внизу….





  1. Изменим свойство Name на MyDataSet

  2. Добавим компонент связи с данными bindingSource - из панели элементов, вкладка ДАННЫЕ- компонент bindingSource. Расположить его на форме.

  3. Настроим его

Name = MySource

DataSource = MyDataSet

DataMember = Tovar (Одной из ваших таблиц)

Обратите внимание что автоматически создался адаптер к данным tovarTableAdapter – который достает все данные из таблицы (Посмотрите его данные или создайте новый запрос на основе SQL)

  1. Добавьте на форму несколько TextBox на форму

  2. Настройте их:

Свойства компонента – Данные – DataBindings – Text – MySource - Любое поле из таблицы



Обратите внимание, что в таблице должна быть строка -



процедуру, выполняемую над базой данных SQL Server.

^ Перемещение по записям

Создайте кнопку – NEXT – которая содержит код MySource.MoveNext();

Аналогичным образом создайте код для

MySource.MovePrevious();

MySource.MoveFirst();

MySource.MoveLast();

^ Организация Добавления записи

Ivanov_iiDataSet.TovarRow s = MyDataSet.Tovar.NewTovarRow();

s.Name = "MyTovar";

s.Cena = 2.5;

s.Kol = 3;

MyDataSet.Tovar.Rows.Add(s);

Т.е. Создаем строку типа таблицы (DataRow) – её заполняем и добавляем в память базы DataSet

^ Удаление записи

Значение свойства RowState становится равным Deleted после использования метода Delete в существующем объекте DataRow. Значение Deleted сохраняется до вызова метода AcceptChanges. В этот момент объект DataRow удаляется из таблицы.

Удаленная строка может быть восстановлена с помощью вызова метода RejectChanges.

MyDataSet.Tovar.Rows[0].Delete();

MyDataSet.Tovar.Rows[1].Delete();

MyDataSet.Tovar.Rows[1].RejectChanges();

MyDataSet.Tovar.AcceptChanges();

Работа с данными через базу

Работа с данными в базе происходит через компонент SQLCommand, который использует SQLConnection

Например

^ НЕОБХОДИМО ПРОПИСАТЬ В USIGN

Using System.Data.SqlClient

Далее создать соединение и запрос с обработкой данных

Например, выборка списка элементов (Последовательный доступ - потоковый)

// 1. Создаем соединение с базой Ivanov.ii

SqlConnection SC = new SqlConnection("Data Source=172.16.7.141;Initial Catalog=Ivanov_ii;Integrated Security=True");

// 2. Открываем подключение

SC.Open();

// 3. Создаем запрос с выборкой данных

SqlCommand Sel = new SqlCommand("Select * from tovar", SC);

// 4. Получаем читатель для данных

SqlDataReader SR = Sel.ExecuteReader();

// 5. Читаем до конца

while (SR.Read()) {

// 6. Обрабатываем данные

listBox1.Items.Add(SR.GetString(1));

}

// 7. Закрываем читатель

SR.Close();
По окончании использования объекта SqlReader всегда следует вызывать метод Close. Если SqlCommand содержит выходные данные, они будут недоступны до закрытия объекта DataReader.

Имейте в виду, что пока объект SqlReader открыт, соединение Connection используется исключительно этим объектом DataReader. Невозможно выполнять какие-либо команды для Connection, включая создание другого объекта DataReader, пока исходный объект DataReader не будет закрыт.

Использование SqlCommand для добавления данных в таблицу

// 1. Создаем строку запроса  

string insertString = @"insert into Tovar (Name, Kol, Cena) values ('Kolbas’’OK', 5, 2.5)";

// 2. Создаем Команду и связываем её с существующим соединением

SqlCommand cmd = new SqlCommand(insertString, SC);

// 3. Вызываем ExecuteNonQuery и выполняем команду

cmd.ExecuteNonQuery();

Аналогичным образом осуществляется изменение и удаление данных.

При данном методе доступа – данные считываются одно за одним и невозможно переходить к предыдущим записям. Чтобы использовать

Для получения параллельного доступа к выбранным данным можно использовать таблицы с данными. Получение данных из запроса и отображение их на форме

SqlConnection SC = new SqlConnection("Data Source=172.16.7.141;Initial Catalog=Ivanov_ii;Integrated Security=True");

SC.Open();

SqlDataAdapter SD = new SqlDataAdapter("Select * from tovar", SC);

DataTable DT = new DataTable();

SD.Fill(DT);

textBox1.Text = DT.Rows[0]["Name"].ToString();

textBox2.Text = DT.Rows[0]["Kol"].ToString();


Изменение данных в базе с помощью запросов
SqlConnection SC = new SqlConnection("Data Source=172.16.7.141;Initial Catalog=Ivanov_ii;Integrated Security=True");

SC.Open();

SqlCommand Sel = new SqlCommand("INSERT SQL TEXT", SC);

Sel.ExecuteNonQuery();


Итак подведем итоги:

DataSet - Представляет расположенный в памяти кэш данных.

DataTable - Представляет одну таблицу с данными в памяти.

DataRow - Представляет одну строку данных в DataTable.

SqlCommand - Представляет инструкцию Transact-SQL или сохраненную
^ ЛАБОРАТОРНАЯ РАБОТА № 3

Тема: Получение ответа от сервера с указаним протокола и порта.

Цель: Получить навыки обмена информацией с сервером на основании протокола HTTP.

^ ХОД РАБОТЫ

Создать приложение которое подключиться к серверам

«Server:8080» - получит главную страницу

«center.zieit/sTest.html» - получит страницу после авторизации пользователя

«Google.com.ua» - отправит запрос получит результаты запроса и выведет их пользователю.
Например, чтобы получить заголовок страницы mail.ru были использованы следующие объекты.
Нужно добавить using System.Net;

WebClient wc = new WebClient();

wc.Proxy = new WebProxy("172.16.7.40", 3128);

wc.Proxy.Credentials = new NetworkCredential("login", "password");

string s = wc.DownloadString("http://www.mail.ru/");

s=s.Substring(s.IndexOf("")+9);<br /><br />s = s.Remove(s.IndexOf("</ti"));<br /><br />textBox1.Text = s;<br /><br /><br /><b><span class="butback" onclick="goback(266785)">^</span> <span class="submenu-table" id="266785">ЛАБОРАТОРНАЯ РАБОТА № 4</span></b><br /><br /><b>Тема:</b> Создание приложения для подключения к серверам HTTP.<br /><br /><b>Цель:</b> Получить навыки работы с WebServer на основе объекта Socket.<br /><br /><span class="butback" onclick="goback(266786)">^</span> <span class="submenu-table" id="266786">ХОД РАБОТЫ</span><br /><br />Создать консольное приложение:<br /><br />Которое по введенному адресу и порту подключиться к ВЕБ серверу и выведет содержимое страницы по умолчанию<br /><br />Сервера для тестирования<br /><br />center.zieit<br /><br />server:8080<br /><br />Пример метода <br /><br /><img src="9232_html_4aeb4e41.png" name="рисунок 61" align=bottom width=539 height=269 border=0><br /><br /><img src="9232_html_5beea802.png" name="рисунок 63" align=bottom width=512 height=171 border=0><br /><br /><img src="9232_html_m66a7c097.png" name="рисунок 288" align=bottom width=373 height=324 border=0><br /><br /><b><span class="butback" onclick="goback(266787)">^</span> <span class="submenu-table" id="266787">ЛАБОРАТОРНАЯ РАБОТА № 5</span></b><br /><br /><b>Тема:</b> Создание Клиент-серверного приложения для обмена данными.<br /><br /><b>Цель:</b> Получить навыки обмена информацией с сервером на основании собственного протокола передачи данных через протоколы TCP или UPD.<br /><br /><span class="butback" onclick="goback(266788)">^</span> <span class="submenu-table" id="266788">ХОД РАБОТЫ</span><br /><br />Создать два приложения:<br /><br />1 – Сервер – подключенный к базе данных и имеет возможность обмениваться SQL сообщениями c базой данных<br /><br />2 – Клиент – отправляет запросы в серверное приложение, получает ответ – и предоставляет его пользователю.<br />Например, чтобы получить с сервера список продуктов, которые запросит с фильтром пользователь можно реализовать следующие приложения.<br /><br /><ul> <li><br />Создать приложение имеющее подключение к БД.<br /><li><br />Добавить кнопку «создания сервера и ожидания подключений» и добавить для мониторинга списки обслуживаемых клиентов<br /></ul> <br /><img src="9232_html_m78b81821.png" name="рисунок 52" align=bottom width=384 height=360 border=0><br /><ul> <li><br />В коде добавить ссылки на пакеты:<br /></ul> <br /><img src="9232_html_me968f9.png" name="рисунок 54" align=bottom width=241 height=57 border=0><br /><br /><ul> <li><br />Добавить две переменные для взаимодействия<br /></ul> <br /><img src="9232_html_1cf8d690.png" name="рисунок 53" align=bottom width=563 height=157 border=0><br /><ul> <li><br />В кнопке создания реализуем код:<br /></ul> <br /><img src="9232_html_5fd2834e.png" name="рисунок 56" align=bottom width=623 height=73 border=0><br /><ul> <li><br />И добавляем в код несколько методов для обработки подключений и принятие информации<br /></ul> <br />Метод ожидания клиентов<br /><br /><img src="9232_html_m48f4c26.png" name="рисунок 59" align=bottom width=563 height=227 border=0><br /><br />Метод обработки каждого клиента<br /><br /><img src="9232_html_79de31eb.png" name="рисунок 58" align=bottom width=503 height=642 border=0><br /><br />Для подключения к Серверу необходимо реализовать в клиенте:<br /><br /><img src="9232_html_12872fe8.png" name="рисунок 60" align=bottom width=507 height=546 border=0><br /><br /><b><span class="butback" onclick="goback(266789)">^</span> <span class="submenu-table" id="266789">ЛАБОРАТОРНАЯ РАБОТА № 5</span></b><br /><br /><b>Тема:</b> Создание Клиент-серверного приложения для обмена данными.<br /><br /><b>Цель:</b> Получить навыки обмена информацией с сервером на основании собственного протокола передачи данных через протоколы TCP или UPD.<br /><br /><span class="butback" onclick="goback(266790)">^</span> <span class="submenu-table" id="266790">ХОД РАБОТЫ</span><br /><br />Создать два приложения:<br /><br />1 – Сервер – подключенный к базе данных и имеет возможность<br /><br /><b>ЛАБОРАТОРНАЯ РАБОТА № 7</b><br /><br /><b>Тема:</b> Разработка Веб-сервисов<br /><br /><b>Цель:</b> Получить навыки создания веб сервисов для обработки информации на другом сервере.<br /><br /><span class="butback" onclick="goback(266791)">^</span> <span class="submenu-table" id="266791">ХОД РАБОТЫ</span><br /><br />Создать веб-сервис который:<br /><br />1 – Примет запрос на выбор данных с фильтрацией для определенной таблицы, сформирует ответ и отправит обратно<br /><br />2 – Примет запрос добавление, удаление или обновление данных и отправит информацию об успешном изменении<br /><br />Веб-служба это код, к которому можно обратиться через HTTP. <br /><br />Так как все это реализовано через HTTP, то язык на котором будет строиться веб служба не имеет значения. В качестве клиентов, используются как оконные так и веб приложения. Для вызова методов типов веб служб можно обойтись HTTP запросами на основе REST протокола, но так же можно воспользоваться XML и SOAP. <br /><br />Веб-служба строится из тех же компонентов .NET (Классы, интерфейсы, сборки) и выполняет роль черного ящика для клиента, возвращая ответ на запрос. Для того чтобы Windows и консольные приложения могли работать с веб-сервисами, в .NET существуют средства для генерации прокси сборок, котоорые перенаправляют запросы от приложений на веб службу через HTTP и SOAP<br /><br />Веб-службе (как и любому приложению ASP.NET) соответствует виртуальный каталог IIS. Однако также необходимо реализовать поддержку инфраструктуры <br /><ul> <li><br />Протокол подключения (HTTP-Rest,HTTP-JSON,SOAP)<br /><li><br />Служба описания - Description service (Чтобы клиент мог получить информацию о том, что веб-служба делает) <br /><li><br />Служба обнаружения - Discovery service (Чтобы клиент мог получить информацию о том что веб служба существует)<br /></ul> <br />Стоит ориентироваться на SOAP, так как с его помощью можно передавать не только стандартные типы данных, такие как int, string и тд , но и сложные пользовательские классы, dataSet, массивы объектов и т.д.<br /><br />При обращении к удаленной web-службе клиент должен обладать полной информацией о членах типов веб-службы. Клиент должен иметь информацию какие методы может вызывать и с какими параметрами, а также что возвращает данный метод. За предоставление данной информации отвечает служба описания (description service). Информация о веб-службе предоставляется в XML формате Данная XML схема называется WSDL<br /><br />Служба обнаружения позволяет клиентуобнаруживать веб-службы по адресу URL. Для этой службы используется файл .disco (тоже в XML)<br /><br />Все типы для работы с инфраструктурой и самими веб сервисами собраны в следующих пространствах имен <br /><ul> <li><br />System.Web.Services - минимальный набор типов для построения веб служб<br /><li><br />System.Web.Services.Description - Набор типов для взаимодействия с WSDL<br /><li><br />System.Web.Services.Discovery - позволяет клиенту находить службу<br /><li><br />System.Web.Services.Discovery - Определены типы для работы с протоколами HTTP, REST, SOAP<br /></ul> <br />Для создания веб службы создаем новый проект и выбираем тип проекта ASP.NET WebService<br /><br /><img src="9232_html_5f98c298.jpg" name="рисунок 55" alt="http://simple-cs.ru/store/webservice/7/ws1.jpg" align=bottom width=401 height=265 border=0><br /><br />Cоздался класс наследник Webservice <br /><br />Внутри этого класса и будут описываться наши веб методы <br /><CENTER> <table width=487 cellpadding=1 cellspacing=0> <col width=483> <tr> <td width=483 bgcolor="#f0f0f0"> <br />public class Service : System.Web.Services.WebService <br />{ <br />public Service () { <br />//реализовать процедуры и их код<br /><br />//InitializeComponent();  <br />} <br />} <br /></td> </tr> </table> </CENTER> <br /><b><span class="butback" onclick="goback(266796)">^</span> <span class="submenu-table" id="266796">Реализация методов Web службы</span></b><br /><br />Создадим метод который будет возвращать время со смещение переданным от клиента. Для того чтобы вебслужба предоставила доступ к этому методу через HTTP его необходимо обозначить атрибутом [WebMethod] <br /><br />Веб сервис принял вид <br /><table width=556 cellpadding=1 cellspacing=0> <col width=552> <tr> <td width=552 bgcolor="#f0f0f0"> <br /><br />public class Service : System.Web.Services.WebService <br />{ <br />    public Service () { <br /><br />        //Uncomment the following line if using designed components  <br />        //InitializeComponent();  <br />    } <br /><br />    [WebMethod] <br />    public DateTime GetClientTime(int hour) { <br />        return DateTime.Now.AddHours(hour); <br />    } <br />     <br />} <br /></td> </tr> </table> <br />http://simple-cs.ru/store/Webservice/9/<br /><br /> http://www.realcoding.net/article/view/2519<br /><br /><i>public string GetHTTP (string server) </i> <br /><br /><i>{</i><br /><br /><i>try</i><br /><br /><i>{</i><br /><br /><i>// Get DNS host information.</i><br /><br /><i>IPHostEntry hostInfo = Dns.GetHostEntry(server);</i><br /><br /><i>// Get the DNS IP addresses associated with the host.</i><br /><br /><i>IPAddress[] IPaddresses = hostInfo.AddressList;</i><br /><br /><i>Encoding ASCII = Encoding.ASCII;</i><br /><br /><i>string Get = "GET / HTTP/1.1\r\nHost: " + server + "\r\nConnection: Close\r\n\r\n";</i><br /><br /><i>Byte[] ByteGet = ASCII.GetBytes(Get);</i><br /><br /><i>Byte[] RecvBytes = new Byte[256];</i><br /><br /><i>String strRetPage = “”;</i><br /><br /><i>for (int index=0; index<IPaddresses.Length; index++)</i><br /><br /><i>{</i><br /><br /><i>IPEndPoint hostEndPoint = new IPEndPoint(IPaddresses[index], 80);</i><br /><br /><i>// Creates the Socket to send data over a TCP connection.</i><br /><br /><i>Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp );</i><br /><br /><i>// Connect to the host using its IPEndPoint.</i><br /><br /><i>s.Connect(hostEndPoint);</i><br /><br /><i>if (!s.Connected)</i><br /><br /><i>{</i><br /><br /><i>// Connection failed, try next IPaddress.</i><br /><br /><i>s = null;</i><br /><br /><i>continue;</i><br /><br /><i>}</i><br /><br /><i>// Sent the GET request to the host.</i><br /><br /><i>s.Send(ByteGet, ByteGet.Length, 0);</i><br /><br /><i>}</i><br /><br /><i>Int bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);</i><br /><br /><i>strRetPage = ASCII.GetString(RecvBytes, 0, bytes);</i><br /><i>while (bytes > 0)</i><br /><br /><i>{</i><br /><br /><i>bytes = s.Receive(RecvBytes, RecvBytes.Length, 0);</i><br /><br /><i>strRetPage = strRetPage + ASCII.GetString(RecvBytes, 0, bytes);</i><br /><br /><i>}</i><br /><br /><i>} </i> <br /><br /><i>catch(Exception e) </i> <br /><br /><i>{</i><br /><br /><i>Console.WriteLine("WRONG");</i><br /><br /><i>Console.WriteLine("Source : " + e.Source);</i><br /><br /><i>Console.WriteLine("Message : " + e.Message);</i><br /><br /><i>}</i><br /><br /><i>return strRetPage;</i><br /><br /><i>}</i>
1   2

Похожие:

Лабораторная работа №1 Тема: Создания информационной базы данных корпоративной сети iconЛабораторная работа №12
Для создания новой базы данных нужно при открытии ms access выбрать опцию Новая база данных. В появившемся диалоговом окне указать...

Лабораторная работа №1 Тема: Создания информационной базы данных корпоративной сети iconЛабораторная работа №1
Информационной моделью (или структурой данных) называют совокупность взаимосвязанных данных. Базы данных, соответственно типам информационных...

Лабораторная работа №1 Тема: Создания информационной базы данных корпоративной сети iconЛабораторная работа 3 тема : Анализ предметной области. Создание...
Цель: проанализировать предметную область, создать инфологическую модель предметной области, даталогическую модель базы данных, скрипт...

Лабораторная работа №1 Тема: Создания информационной базы данных корпоративной сети iconВ. К. Толстых, С. Н. Мичкивский, Л. Н. Киселёва
В статье обсуждаются вопросы создания образовательной сети на основе единой регистрационной базы данных (ербд) школьников и абитуриентов....

Лабораторная работа №1 Тема: Создания информационной базы данных корпоративной сети iconПрактическая работа №13 Тема : Проектирование базы данных «Колледж»
Тема: Проектирование базы данных «Колледж». Заполнение базы данными. Создание подчинённых форм

Лабораторная работа №1 Тема: Создания информационной базы данных корпоративной сети iconПрактическая работа №11 Тема : Проектирование базы данных «Колледж»
Тема: Проектирование базы данных «Колледж». Создание таблиц. Ввод данных в таблицы. Использование форм

Лабораторная работа №1 Тема: Создания информационной базы данных корпоративной сети iconПрактическая работа №12 Тема : Проектирование базы данных «Колледж»
Тема: Проектирование базы данных «Колледж». Создание таблиц. Ввод данных в таблицы. Использование форм

Лабораторная работа №1 Тема: Создания информационной базы данных корпоративной сети iconЛабораторная работа №5 Тема: Создание форм для ввода данных
Формами называются настраиваемые диалоговые окна, сохраняемые в базе данных в виде объектов специального типа. Формы Access являются...

Лабораторная работа №1 Тема: Создания информационной базы данных корпоративной сети iconПрактическая работа №14 Тема: Создание базы данных в среде ms
Тема: Создание базы данных в среде ms access, создание таблиц, ввод данных в таблицы, использование форм

Лабораторная работа №1 Тема: Создания информационной базы данных корпоративной сети iconПрактическая работа №2 Тема
Цель: Научиться создавать даталогическую модель базы данных при помощи программы Power Designer, а также генерировать скрипт базы...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<