Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Асинхронные приложения баз данных в клиент-серверной технологии СУБД ⇐ ПредыдущаяСтр 9 из 9
В этом задании показаны несколько важных приемов, в том числе вызов метода, который взаимодействует с формой из отдельного потока. Кроме того, показано, как блокировать попытки пользователей одновременно выполнять команду несколько раз и как гарантировать, что форма не закроется до вызова процедуры ответного вызова. Открываем пакет Visuail Studio 2010. Выбираем элемент меню “File \ New Project”. В окне выбираем тип проекта “Windows Forms Application” и нажимаем “Ok”.
На Form1 в режиме дизайнера поместите в форму элемент управления Button и два элемента управления Label (приняв для каждого из них имя по умолчанию). Открываем файл form1.cs и в начало файла вставляем ссылки на пространства имен. using System; using System.Data; using System.Data.SqlClient; В класс формы добавляем следующий код, изменив строку соединения с базой данных в соответствии с вашей средой.
private delegate void DisplayInfoDelegate(string Text);
private bool isExecuting;
private SqlConnection connection;
private static string GetConnectionString() { return "Data Source=(local);Integrated Security=SSPI;" + "Initial Catalog=AdventureWorks; Asynchronous Processing=true"; }
private void DisplayStatus(string Text) { this.label1.Text = Text; }
private void DisplayResults(string Text) { this.label1.Text = Text; DisplayStatus("Ready"); }
private void Form1_FormClosing(object sender, System.Windows.Forms.FormClosingEventArgs e) { if (isExecuting) { MessageBox.Show(this, "Can't close the form until " + "the pending asynchronous command has completed. Please " + wait..."); e.Cancel = true; } }
private void button1_Click(object sender, System.EventArgs e) { if (isExecuting) { MessageBox.Show(this, "Already executing. Please wait until " + "the current query has completed."); } else { SqlCommand command = null; try { DisplayResults(""); DisplayStatus("Connecting..."); connection = new SqlConnection(GetConnectionString()); string commandText = "WAITFOR DELAY '0:0:05';" + "UPDATE Production.Product " + "SET ReorderPoint = ReorderPoint + 1 " + "WHERE ReorderPoint Is Not Null;" + "UPDATE Production.Product " + "SET ReorderPoint = ReorderPoint - 1 " + "WHERE ReorderPoint Is Not Null";
command = new SqlCommand(commandText, connection); connection.Open();
DisplayStatus("Executing..."); isExecuting = true; AsyncCallback callback = new AsyncCallback(HandleCallback);
command.BeginExecuteNonQuery(callback, command);
} catch (Exception ex) { isExecuting = false; DisplayStatus( string.Format("Ready (last error: {0})", ex.Message)); if (connection != null) { connection.Close(); } } } }
private void HandleCallback(IAsyncResult result) { try { SqlCommand command = (SqlCommand)result.AsyncState; int rowCount = command.EndExecuteNonQuery(result); string rowText = " rows affected."; if (rowCount == 1) { rowText = " row affected."; } rowText = rowCount + rowText;
DisplayInfoDelegate del = new DisplayInfoDelegate(DisplayResults); this.Invoke(del, rowText); } catch (Exception ex) { this.Invoke(new DisplayInfoDelegate(DisplayStatus), String.Format("Ready(last error: {0}", ex.Message)); } finally { isExecuting = false; if (connection != null) { connection.Close(); } } }
private void Form1_Load(object sender, System.EventArgs e) { this.button1.Click += new System.EventHandler(this.button1_Click); this.FormClosing += new System.Windows.Forms. FormClosingEventHandler(this.Form1_FormClosing); } В свойствах кнопки для события OnClick из выпадающего списка выбираем обработчик нажатия кнопки button1_click(…). Выбираем в дизайнере свойств элемент Form1 и для нее аналогичным образом выбираем на событие Form_closing(…) из выпадающего списка одноименный обработчик. Сохраняем проект, компилируем, проверяем работоспособность.
СОДЕРЖАНИЕ ОТЧЕТА ПО ЛАБОРАТОРНОЙ РАБОТЕ По завершении лабораторных работ студент должен представить отчет о проделанных заданиях. Отчет предоставляется на кафедру «Информационных систем в экономике» в распечатанном виде и на дискете. Зачет по лабораторным работам основывается на качестве выполненных заданий и результатах собеседования студента с руководителем лабораторных работ. Отчет должен содержать следующие разделы и элементы: · Титульный лист, · Оглавление, · Для лабораторной работы 1. «Разработка клиент-серверного приложения баз данных (тонкий клиент, толстый клиент, n-tier архитектура)» отчет должен включать: · Экранные копии основных форм приложения; · Исходный код приложения (листинги). · Для лабораторной работы 2. «Дизайн модели данных и ее использование в клиент-серверном приложении» отчет должен включать: · Экранные копии основных форм приложения; · Исходный код приложения (листинги). · Для лабораторной работы 3. «Разработка клиент-серверных приложений баз данных с различным сценариям доступа к данным» отчет должен включать: · Экранные копии основных форм приложения; · Исходный код приложения (листинги). · Для лабораторной работы 4. «Разработка распределенных приложений баз данных в клиент-серверной архитектуре с использованием сервисов данных» отчет должен включать: · Экранные копии основных форм приложения; · Исходный код приложения (листинги). · Для лабораторной работы 5. «Асинхронные приложения баз данных в клиент-серверной технологии СУБД» …: · отчет должен включать: · Экранные копии основных форм приложения; · Исходный код приложения (листинги). · Заключение. Содержит выводы по результатам проделанной работы. Оформление отчета должно соответствовать следующим требованиям: · отчет оформляется в соответствии с требованиями следующих стандартов: · ГОСТ 2.105-95 ЕСКД. Общие требования к текстовым документам; · ГОСТ 7.32-2001 (ИСО 5966-82) СИБИД. Отчет о научно-исследовательской работе. Структура и правила оформления; · ИСО 5966-82. Документация. Оформление научных и технических отчетов; · ГОСТ 7.1-84 СИБИД. Библиографическое описание документа: общие требования и правила составления. · отчет подготавливаются в текстовом редакторе Microsoft Word; · для набора основного текста необходимо создать соответствующий стиль и включить автоматический перенос слов. Стиль оформления основного текста должен содержать следующие установки: · шрифт – кегль 14, гарнитура «Times New Roman»; · межстрочный интервал – 1,5; · абзацный отступ – 1,25 см; · выравнивание – по ширине; · перенос автоматический «Сервис – Язык – Расстановка переносов»; · нумерация страниц располагается внизу по центру страницы; · поля по 2,5 см; · формат страницы – А4 (210x297 мм). · таблицы необходимо оформлять с использованием табличного редактора, ширина таблицы не должна превышать ширину полосы текста. Размер кегля текста внутри таблиц 12 пт, минимальный размер кегля внутри таблицы (только при необходимости) – 10. Текст головки (шапки) таблицы набирают без сокращений слов; · при построении рисунков, графиков, диаграмм, блок-схемиспользовать только встроенные приложения WORD. Рисунки и блок-схемы необходимо выполнять, используя опции «Вставка – Рисунок – Создать рисунок». Рисунки должны быть сгруппированы. Надписи на рисунке выполняются шрифтом 12-го кегля. Все внутририсуночные тексты и буквенные обозначения должны располагаться в «рамках текста». Образец титульного листа отчета по лабораторной работе представлен в приложении 1.
СПИСОК ЛИТЕРАТУРЫ ОСНОВНАЯ 1. Гайдамакин Н.А. Автоматизированные информационные системы, базы и банки данных. Вводный курс. - М.: Гелиос, 2005. - 368 c. 2. Голицына О.Л., Максимов Н.В., Попов И.И. Базы данных. Учебное пособие для ССУЗов. - М.: Форум, 2007. - 399 c. 3. Кузнецов С.Д. Базы данных: Языки и модели. - M: Бином. 2007, - 720 c. 4. Майкл Дж. Хернандес, Джон Л. Вьескас SQL-запросы для простых смертных. Практическое руководство по манипулированию данными в SQL. - М.: Лори, 2007. - 480 c. 5. Маклин Й., Томас О. Оптимизация и администрирование баз данных Microsoft SQL Server 2005. - М.: Русская Редакция, 2007. - 624 c.
7. 2 ДОПОЛНИТЕЛЬНАЯ: 1. Weller Bart Beginning SQL Server Modelling. –Apress., 2010 2. Дунаев В.В. Базы данных. Язык SQL для студента. - СПб.: BHV, 2007. - 320 c. 3. Мирошниченко Г. Реляционные базы данных. Практические приемы оптимальных решений. - CПб.: BHV, 2005. - 400 c. 4. Пирогов В. SQL Server 2005. Программирование клиент-серверных приложений. – СПб.: БХВ, 2006. – 336 с. 5. Рудикова Л. В. Базы данных. Разработка приложений – СПб.: БХВ, 2006. – 496 с. 6. Макин Дж. К., Хотек М.Проектирование серверной инфраструктуры баз данных Microsoft SQL Server 2005. Учебный курс Microsoft – СПб.: БХВ, 2008. – 560 с.
Приложения Приложение 1 |
Последнее изменение этой страницы: 2019-04-19; Просмотров: 261; Нарушение авторского права страницы