Спонсор: Microsoft
Опубликован: 19.03.2014 | Доступ: свободный | Студентов: 314 / 17 | Длительность: 11:36:00
Специальности: Программист
Лекция 13:

Организация доступа к базе данных SQL Server Compact в серверных сценариях гибридных мобильных приложений

Аннотация: Информация, обрабатываемая серверным сценарием гибридного мобильного приложения. Доступ к базе данных средствами ADO.NET. Назначение элементов управления данными DataSource. Поддержка в SqlDataSource команд SELECT, UPDATE, INSERT, DELETE. Визуальные элементы управления привязки данных. Особенности SQL Server Compact. Создание базы данных из среды веб-проекта. Отображение информации базы данных в браузере мобильного устройства. Отправка данных клиенту. Добавление клиентских данных в базу данных на сервере. Использование средств C# для добавления данных.

Информация, обрабатываемая серверным сценарием гибридного мобильного приложения

Наиболее типовые действия серверной части гибридных мобильных приложений - это сбор и обработка данных, получаемых от мобильных клиентов. Характер самих данных представляется весьма разнообразным. Во-первых, это может быть информация от встроенных в мобильное устройство датчиков, например, показания акселерометра, компаса, полученные от камеры фотографии или сведения о контактах клиента и его местонахождении. Во-вторых, передаваться с мобильного устройства на сервер может обычная текстовая информация, например, имя клиента, название заказываемого в кафе блюда, номер желаемого места в самолете и т.п. Деятельность большинства серверных приложений сосредотачивается на сохранении, извлечении, отображении и модификации таких данных.

Доступ к базе данных средствами ADO.NET

Продукт Microsoft ADO.NET [1] - это в настоящее время наиболее эффективная технология для обращения к источникам данных серверных веб-приложений. ADO.NET представляет собой набор библиотек, предназначенных для взаимодействия с различными хранилищами данных из веб-приложений. Библиотеки ADO.NET включают все необходимые классы для подключения к источникам данных практически произвольного формата, выполнения запросов к этим источникам и получения результата. Кроме того, несомненным достоинством ADO.NET является возможность работы в disconnected environment (подключение только в нужные моменты), что очень удобно для многопользовательских веб-приложений. В качестве формата обмена данными используется XML, что также дает большой выигрыш по многим причинам [2]. Объектная модель ADO.NET обеспечивает доступ к данным из различных источников.

Главные элементы ADO.NET при разработках WebForms: невизуальные DataSource - объекты для управления данными и визуальные объекты для показа информации из базы - GridView, DataList, Chart, DetailsView и др. Все они представлены на панели элементов веб-проекта:


Рис. 23.1.

Назначение элементов управления данными DataSource представлено в таблице:

Таблица 23.1.
Элемент управления Описание
SqlDataSource Производит поиск и обновление информации в базах данных Microsoft SQL Server, Oracle, Access и др.
LinqDataSource Производит поиск и обновление информации в базах данных Linq.
ObjectDataSource Производит поиск и обновление информации через бизнес - объекты.
XmlDataSource Служит для работы с информацией, содержащейся в XML файлах.
SiteMapDataSource Обрабатывает информацию, содержащуюся в файле карты сайта.
EntityDataSource Cвязывает веб-элементы управления с данными в модели EDM( Entity Data Model)

Элемент управления SqlDataSource можно использовать для извлечения данных из базы и изменения данных с помощью небольшого кода или без использования кода [3]. Элемент управления SqlDataSource может работать с любой базой данных, связанной с поставщиком ADO.NET, включая Microsoft SQL Server, Oracle, ODBC или базы данных OLE DB, такой как Microsoft Access. От используемой базы данных зависит синтаксис инструкций SQL, настроенных для использования SqlDataSource, и можно ли использовать расширенные возможности базы данных, такие как хранимые процедуры. Однако элемент управления источника базы данных действует одинаково для всех баз данных.

Поддержка в SqlDataSource команд SELECT, UPDATE, INSERT, DELETE

Элемент управления SqlDataSource позволяет выполнять следующие операторы (команды) языка SQL (англ. Structured Query Language - "Структурированный язык запросов"):

  • SELECT - возвращает набор данных (выборку) из таблиц базы данных, удовлетворяющий заданному условию;
  • UPDATE - изменяет значения в одной или нескольких колонках таблицы;
  • DELETE - удаляет строки из таблицы;
  • INSERT - добавляет записи в таблицу.

Чтобы извлечь, удалить, добавить или изменить информацию из базы данных с помощью элемента управления SqlDataSource, ему необходимо задать, по меньшей мере, следующие свойства:

  • ProviderName - задает имя поставщика ADO.NET, представляющего используемую базу данных;
  • ConnectionString - задает строку подключения для работы с базой данных, главное свойство объекта, в котором содержится вся информация о соединении;
  • SelectCommand, UpdateCommand, InsertCommand, DeleteCommand - задает запрос SQL или хранимую процедуру, которая возвращает данные из базы данных (SELECT) либо изменяет их (INSERT, DELETE, UPDATE).

Для изменения данных базы элемент управления SqlDataSource содержит методы:

  • Insert() - добавляет данные (новые строки) в таблицу базы;
  • Delete() - удаляет данные (строки) из таблицы;
  • Update() - изменяет данные в таблице, не меняя ее размера.

Визуальные элементы управления привязки данных

Для отображения содержимого DataSource на веб-форме используются визуальные элементы управления привязки данных, которые предназначены для показа информации из источника данных. Это элементы отображения данных, такие как GridView, DetailsView или FormView, или элементы управления, такие как ListBox или DropDownList. Элемент управления привязки данных действует как потребитель данных, которые он извлекает из элемента управления SqlDataSource. Для каждого элемента отображения данных определяется значение свойства DataSource, соответствующее источнику данных. При подготовке отображения страницы элемент управления SqlDataSource извлекает данные и делает их доступными для элемента управления привязки данных, который, в свою очередь, отображает данные.

Все перечисленные визуальные элементы управления находятся в контейнере "Данные" панели элементов. Отметим, что набор этих элементов управления для работы с данными в ASP.NET может отличаться от набора элементов, который был предусмотрен в предыдущих версиях ASP.NET. И в последующих версиях VS эти элементы управления будут изменяться. Поэтому будет приведена только краткая характеристика основных элементов:

Таблица 23.2.
Элемент управления Описание Поддержка способа обновления данных
GridView Отображает данные в виде традиционной таблицы. Update, Delete
DetailsView Отображает поля записи из источника данных в виде HTML таблицы, каждая строка корой соответствует полю записи. Insert, Update,Delete
FormView Отображает отдельные записи из источника данных, но вместо отдельных строк он использует заданные пользователем шаблоны. Insert, Update,Delete
Repeater Предоставляет гибкий и удобный механизм отображения повторяющихся списков элементов. Дополнительный код
DataList Похож на элементы управления Repeater, но обладает дополнительными возможностями: он поддерживает форматирование по колонкам, а также выбор и редактирование элементов. Дополнительный код

Из перечисленных в таблице элементов управления, связанных с отображением данных, элементы GridView, DetailsView и FormView наиболее удобны в использовании. Процесс конфигурации этих элементов почти одинаков для каждого из них. У всех элементов управления для работы с данными есть общие возможности. Одинаково настраиваются источники данных, для каждого из элементов управления предусмотрены средства автоматического форматирования (AutoFormat), выбора и настройки набора столбцов (Fields). Средства для настройки шаблонов также схожи для большинства визуальных элементов управления для работы с данными.

Рассмотрим использование возможностей объектов ADO.NET на примере отображения и сохранения в базе данных информации, полученной серверным сценарием от мобильного клиентского приложения (виджета). Для демонстрации этих возможностей воспользуемся проектом WebApp_Mobile, описанным в предыдущей лекции "Разработка серверных мобильных веб - приложений средствами ASP.NET". Добавим в него базу данных, объекты доступа к ней, объекты отображения содержимого и настроим объекты средствами среды или используя код C#.

Известно, что для ASP сценариев доступны разные выпуски SQL Server: Developer, Express и Compact. Мы выберем SQL Server Compact, как наиболее легкий в администрировании начинающими разработчиками.

Особенности SQL Server Compact

SQL Server Compact Edition (первоначальное название SQL Server Everywhere) - продукт компании Microsoft в линейке SQL Server, являющийся более новой версией SQL Server Mobile и основан на том же коде что и SQL Server Mobile. Продукт выпуcкается с 11 января 2007 года. На сегодняшний день, последний релиз - SQL Server Compact 4.0, с поддержкой .NET Framework 4.5 и работающий под 32- и 64-разрядными версиями Windows. База данных хранится в едином файле, формат которого совпадает с форматом "мобильной" версии. В отличие от SQL Server Express, выполняющегося в виде отдельного сервиса, SQL Server Compact выполняется "in-proc", то есть в рамках вызывающего процесса. Ограничение на максимальный размер файла базы данных - 4 ГБ и будет увеличиваться в последующих версиях.

Дмитрий Белов
Дмитрий Белов

Каким образом можно создать точку останова? Например, если в Лекции 8 в примере, который демонстрирует возможность <canvas> для работы с готовыми изображениями (последний в лекции) в цикле
for (i = 0; i < 3; i++) {
for (j = 0; j < 4; j++) {
sx = 300 * i; sy = 350 * j;
contextNow.drawImage(img, sx, sy);}
поставить точку останова, то при запуске отладки проекта точка становится пустой окружностью с сообщением: В настоящий момент попадание в точку останова не произойдет. Нет загруженных символов для этого документа. Как все-таки создать точку останова и пройти по шагам весь код?

Александр Бут-Гусаим
Александр Бут-Гусаим
Россия, Тула
Виктор Ефремов
Виктор Ефремов
Россия