Быстрая разработка приложений с помощью SQL Server 2005 Compact Edition и Visual C#.NET


Автор:
Опубликовано: Январь 2007 года

Продукты и технологии: Microsoft Visual Studio 2005, Microsoft SQL Server 2005 Compact Edition

В этом учебнике показано, как использовать инструменты в составе Visual Studio 2005 для быстрой разработки приложений, работающих с данными из БД SQL Server 2005 Compact Edition. В примерах используется язык программирования Visual C#.NET. Есть также другой учебник, в котором показано, как эти же задачи можно решать с помощью Visual Basic.NET.


Прим.ред. К сожалению, в статье оказались переведены все команды меню Visual Studio, названия окон и т.п., хотя сам продукт доступен только на английском языке. К счастью, кое-где это не мешает восприятию текста, а, скорее помогает...

Требования для работы с учебником

Для работы с этим учебником необходимы следующие приложения:

версии Standard, Professional или Team System Edition. Примеры не будут работать на Express Edition. Если у вас нет необходимой версии Visual Studio 2005, ознакомьтесь с информацией о возможности ее получения на веб-узле Visual Studio 2005 Developer Center.

Загрузить пакет можно здесь http://go.microsoft.com/fwlink/?LinkID=79612.

Загрузить его можно отсюда http://go.microsoft.com/fwlink/?LinkID=79611.

Цель учебника

В этом учебнике показано, как использовать инструменты в составе Visual Studio 2005 для быстрой разработки приложений, работающих с данными из БД SQL Server 2005 Compact Edition. В примерах используется язык программирования Visual C#.NET. Есть также другой учебник, в котором показано, как эти же задачи можно решать с помощью Visual Basic.NET. (17 печатных страниц).

Примечание. SQL Server Compact Edition — универсальная технология управления базами данных, которая работает на всех платформах Windows. Она представляет собой развитие технологии баз данных для Windows Mobile, известной как SQL Server Mobile Edition (SQL Mobile). В настоящее время в некоторых диалоговых окнах Visual Studio 2005 и SQL Server Management Studio 2005 продукт все еще называется SQL Mobile. Поэтому если при выполнении процедур в этом учебнике говорится, что нужно выбрать SQL Server Compact Edition, но в интерфейсе пользователя показано SQL Server Mobile, следует выбрать SQL Server Mobile. Эти расхождения в названиях — кратковременная проблема, которая в ближайшее время будет устранена в Visual Studio 2005 с пакетом обновления 1 (SP1) и SQL Server 2005 с пакетом обновления 2 (SP2). Независимо от названия продукта — SQL Mobile или SQL Server Compact Edition, — технология и ее использование одинаковы.

Работая с этим учебником, вы выполните следующие упражнения:

Упражнение 1. Использование конструктора Visual Studio 2005 для создания формы, с помощью которой можно обращаться к данным SQL Server 2005 Compact Edition и обновлять их

Выполнив это упражнение, вы научитесь с помощью конструктора Visual Studio 2005 создавать формы, с помощью которых можно обращаться к данным SQL Server 2005 Compact Edition и обновлять их.

Как создать проект

  1. Запустите Visual Studio 2005, для чего нажмите кнопку Пуск и последовательно выберите пункты Все программы | Microsoft Visual Studio 2005 | Microsoft Visual Studio 2005
  2. Чтобы создать новое приложение Windows Forms, последовательно выберите в меню Файл команды Создать | Проект
  3. В диалоговом окне Создать проект на панели Типы проектов последовательно выберите пункты Visual C# | Windows
    Примечание. В зависимости от конфигурации Visual Studio, пункт Visual C# может находиться в списке Другие языки.
  4. На панели Шаблоны выберите Приложение Windows.
  5. Измените значение в поле Имя на RADDataDemo (см. рис. 1) и нажмите кнопку ОК.
    Примечание. Проект можно создать в любой папке (поле Размещение).

Изображение GIF Рис. 1. Диалоговое окно "Создать проект"

Visual Studio создает новый проект и открывает в конструкторе форму Form1. Теперь настроим её для просмотра и обновления данных из существующей базы данных SQL Server Compact Edition.

Как задать базу данных SQL Server Compact Edition в качестве источника данных

С помощью мастера настройки источников данных Visual Studio можно добавить источник данных к проекту. Можно выбрать различные источники данных, в том числе, SQL Server и SQL Server Compact Edition, веб-службы или объекты, резидентные в памяти. В этом примере в качестве источника данных для приложения будет выбрана учебная база данных SQL Server Compact Edition Northwind («Борей»). В большинстве случаев data source служит для привязки данных к интерфейсу пользователя приложения.

  1. Чтобы открыть в окне Visual Studio панель Источники данных, последовательно выберите пункты Данные | Показать источники данных.
  2. На панели Источники данных нажмите кнопку Добавить источник данных, расположенную в левом верхнем углу (см. рис. 2).
    Откроется окно Мастер настройки источников данных.

    Изображение GIF Рис. 2. Кнопка «Добавить источник данных»

  3. Выберите тип источника данных База данных и нажмите кнопку Далее (см. рис. 3).

    Изображение GIF Рис. 3. Выбор типа источника данных с помощью мастера настройки источников данных

  4. На странице Выбор соединения с данными выберите Создать соединение.
    Примечание. Если ранее вы создали строку соединения с нужной базой данных, то соединение можно будет выбрать из раскрывающегося списка, не создавая новое соединение.

  5. В диалоговом окне Выбор источника данных выберите Microsoft SQL Server 2005 Compact Edition и нажмите кнопку Продолжить (см. рис. 4).

    Изображение GIF Рис. 4. Изменение источника данных

  6. В диалоговом окне Добавить соединение для переключателя Источник данных должно быть выбрано Мой компьютер (см. рис. 5). Это позволит выбрать в качестве источника данных файл базы данных, расположенный на жестком диске компьютера.
  7. В том же диалоговом окне Добавить соединение, нажмите кнопку Обзор, чтобы открыть окно выбора файлов.

    Изображение GIF Рис. 5. Добавление соединения

  8. В окне выбора файлов выберите файл C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v3.0\Northwind.sdf и нажмите кнопку Открыть, чтобы выбрать базу данных.
  9. В диалоговом окне Добавить соединение нажмите кнопку Проверка соединения, чтобы убедиться в правильности установки соединения с базой данных. Если файл базы данных существует, и сервер SQL Server Compact Edition установлен правильно, открывается диалоговое окно с сообщением, что соединение установлено успешно.
  10. Для закрытия диалогового окна Проверка соединения прошла успешно нажмите кнопку ОК.
    Если файл базы данных существует, и сервер SQL Server Compact Edition установлен правильно, открывается диалоговое окно с сообщением, что соединение установлено успешно.
  11. После завершения проверки соединения нажмите кнопку ОК в диалоговом окне Добавить соединение.
  12. В диалоговом окне Выбор соединения с данными можно развернуть и посмотреть созданную Строку соединения (см. рис. 6).

    Изображение GIF Рис. 6. Диалоговое окно «Выбор соединения с данными», в котором показана строка подключения к БД

  13. В диалоговом окне Выбор соединения с данными нажмите кнопку Далее.
  14. Появится подсказка с вопросом, хотите ли вы скопировать локальный файл данных в проект и соответствующим образом изменить соединение (см. рис. 7). Чтобы скопировать локальный файл данных в проект, нажмите кнопку Да.

    Изображение GIF Рис. 7. Подсказка для копирования локального файла данных в текущий проект (щелкните изображение, чтобы его увеличить)

  15. При появлении подсказки о сохранении строки соединения убедитесь, что установлен флажок Да, сохранить соединение как. Оставьте неизменной строку соединения NorthwindConnectionString и нажмите кнопку Далее (см. рис. 8). Рекомендуется всегда сохранять строки соединения в файле конфигурации приложения, чтобы облегчить обращение к разным копиям файлов базы данных без перестройки и повторного развертывания приложения.

    Изображение GIF Рис. 8. Диалоговое окно сохранения строки соединения

  16. На странице Выберите объекты базы данных разверните узел Таблицы и проверьте наличие таблиц Customers (Заказчики), Employees (Сотрудники), Orders (Заказы) и Shippers (Грузоотправители), чтобы включить их в набор данных (см. рис. 9).

    Изображение GIF Рис. 9. Диалоговое окно «Выберите объекты базы данных»

  17. Оставьте в поле Имя набора данных используемое по умолчанию значение NorthwindDataSet и нажмите кнопку Готово (см. рис. 9).

Visual Studio создает набор данных, который затем появляется на панели Источники данных.

Как создать элементы формы из таблицы набора данных

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

  1. На панели «Источники данных» в Visual Studio разверните узел NorthwindDataSet, чтобы увидеть все таблицы, включенные в набор данных, если таблицы не видны.
  2. Разверните таблицу Orders, чтобы показать список столбцов таблицы.
  3. Выделите раскрывающийся список Orders и выберите пункт Подробности (см. рис. 10).

    Если таблица помещена на форму, при выборе пункта Подробности создаются элементы управления для каждого столбца таблицы.

    Изображение GIF Рис. 10. Таблица Orders: переход к представлению «Подробности»

  4. Измените применяемый по умолчанию тип элемента управления для столбца Order ID на «Надпись», выбрав его из раскрывающегося списка, который открывается в столбце Order ID. Точно так же измените применяемые по умолчанию типы элементов управления для столбцов Customer ID (Идентификатор заказчика), Employee ID (Идентификатор сотрудника) и Ship Via (Отгрузка) на Поле со списком.
  5. Перетащите таблицу Orders на форму.

    Visual Studio создает элементы управления для каждого из столбцов таблицы, элемент управления для перемещения по базе данных и все необходимые связи данных для привязки этих элементов управления к таблице. Результирующая форма показана на рис. 11.

    Изображение GIF Рис. 11. Форма и панель элементов управления после перетаскивания таблицы Orders на форму

  6. Перетащите в форме таблицу Customers на элемент управления типа Поле со списком с именем Customer ID. Visual Studio при этом создаст связь между таблицей Customers и элементом управления Поле со списком, в результате чего элементы раскрывающегося списка Поле со списком автоматически заполнятся содержимым таблицы Customers. Вместо фактических номеров заказчиков, в раскрывающемся списке будут показаны фамилии каждого заказчика. Это происходит потому, что Visual Studio автоматически изменяет привязку данных так, чтобы отображалось значение первого строкового столбца таблицы, который не входит в состав первичного ключа. В таблице Customers первый столбец строкового типа, который не является частью первичного ключа, — это столбец Last Name (Фамилия).
  7. Используя ту же методику, создайте привязку к данным, чтобы заполнить элементы управления Поле со списком с именами Employee ID и ComboBox Ship Via содержимым таблиц Employees и Shippers соответственно.
  8. Увеличьте размер формы, перетащив ее правую границу, чтобы создать место для размещения элемента управления PictureBox.
  9. В меню Вид выберите команду Область элементов, чтобы открыть панель элементов управления, и разверните узел Стандартные элементы управления.
  10. Перетащите элемент управления PictureBox с Области элементов на пустую область в правой части формы.
  11. Нажмите кнопку смарт-тегов (со стрелкой) в правом верхнем углу элемента управления PictureBox, чтобы открыть меню смарт-тегов. В меню смарт-тегов измените свойство Установка размеров на Автоподбор (см. рис. 12). При выборе для свойства Установка размеров значения Автоподбор размер элемента управления PictureBox автоматически изменяется в соответствии с размером изображения.

    Изображение GIF Рис. 12. Выбор режима установки размеров для элемента управления PictureBox (щелкните изображение, чтобы увеличить его)

  12. На панели Источники данных разверните таблицу Employees и перетащите столбец Photo (Фотография) на только что созданный элемент управления PictureBox. Visual Studio автоматически привяжет элемент управления PictureBox к данным столбца Photo.
    Примечание. Создать привязку элемента управления PictureBox к данным можно, перетащив столбец Photo непосредственно с панели «Источники данных» на форму так же, как это было сделано для остальных столбцов таблицы Orders. Второй способ, который заключается в том, чтобы сначала поместить элемент управления PictureBox на форму и затем перетащить столбец Photo с панели «Источники данных» на элемент управления PictureBox, приведен в учебнике для того, чтобы продемонстрировать возможность сначала размещать в форме элементы управления, а затем привязывать их к данным.

Как протестировать приложение

  1. В Visual Studio выберите в меню Отладка команду Запустить отладку.
    Одновременно с окном приложения на экране должна появиться форма, полностью заполненная данными, и с фотографией сотрудника, ответственного за заказ (см. рис. 13).

    Изображение GIF Рис. 13. Работающее приложение

  2. Измените значение в поле Ship Country (Страна-грузоотправитель) с Italy на Italia и щелкните по значку Сохранить данные. Эти изменения будут сохранены в базе данных.
  3. Закройте форму, чтобы выйти из приложения.
  4. Снова запустите приложение в Visual Studio, последовательно выбрав команды Отладка | Запустить отладку.
  5. Обратите внимание, что теперь значение поля Ship Country — Italia. Это означает, что измененные данные были правильно сохранены в базе данных.

    Для просмотра записей в базе данных, добавления в базу данных новых записей и удаления записей из базы данных можно также использовать кнопки переходов, расположенные вверху формы.
  6. Закройте форму, чтобы выйти из приложения.

Упражнение 2. Просмотр, создание и администрирование данных SQL Server 2005 Compact Edition в среде Visual Studio 2005

Выполнив это упражнение, вы научитесь с помощью Visual Studio 2005 просматривать и изменять данные в существующей базе данных SQL Server 2005 Compact Edition, а также создавать новые базы данных SQL Server 2005 Compact Edition и управлять ими.

Как посмотреть данные при имеющемся соединении с данными

  1. В Visual Studio выберите в меню Вид пункт Обозреватель серверов.

    Откроется панель Обозреватель серверов, показанная на рис. 14. Соединение с базой данных Northwind.sdf, которое вы создали ранее в этом учебнике, должно быть доступным для просмотра. Другие ранее созданные соединения с данными также могут быть доступны.

    Изображение GIF Рис. 14. Панель обозревателя серверов с существующими соединениями с данными

  2. На панели Обозреватель серверов разверните узел соединения с данными NewDatabase.sdf и затем узел Таблицы, чтобы просмотреть все таблицы базы данных Northwind.sdf.
  3. С помощью обозревателя серверов можно просмотреть содержимое любой таблицы базы данных. Чтобы просмотреть содержимое таблицы Orders, щелкните таблицу Orders правой кнопкой мыши и в контекстном меню выберите Открыть.

    Данные в таблице Orders теперь представлены в табличном формате (см. рис. 15). Табличное представление поддерживает активное соединение с базой данных, поэтому вы можете просматривать и изменять данные в таблице Orders.

    Изображение GIF Рис. 15. Табличное представление данных таблицы Orders (щелкните изображение, чтобы увеличить его)

  4. При запуске приложения из Visual Studio в выходном каталоге проекта (обычно это подкаталог bin\Debug) создается копия файла базы данных проекта, которую будет использовать приложение. Независимую копию файла базы данных можно изменять столько, сколько необходимо для тестирования приложения, не внося изменения в исходную версию базы данных.

    Соединение Northwind.sdf в обозревателе серверов, созданное ранее в этом учебнике, обращается к исходному файлу базы данных Northwind.sdf, а не к копии в выходном каталоге. Поэтому никакие изменения, которые вносятся приложением в базу данных, в этом представлении не видны. Чтобы просмотреть файл базы данных, используемый приложением, необходимо создать в обозревателе серверов новое соединение, которое обращается к файлу базы данных, находящемуся в выходном каталоге.

    По умолчанию Visual Studio копирует исходный файл базы данных в выходной каталог только в том случае, если файл базы данных еще не существует в выходном каталоге или если исходный файл базы данных был обновлен позже, чем копия в выходном каталоге. Чтобы среда Visual Studio копировала исходный файл базы данных в выходной каталог при каждом запуске приложения, щелкните правой кнопкой мыши файл базы данных на панели «Обозреватель решений», в контекстном меню выберите Свойства и задайте для свойства Копировать в выходной каталог значение Копировать всегда.

  5. Закройте окно таблицы Orders.

Как создать новую базу данных

  1. На панели Обозреватель серверов щелкните правой кнопкой мыши Соединения с данными и в контекстном меню выберите пункт Добавить соединение..., чтобы открыть диалоговое окно Добавить соединение.
  2. В диалоговом окне Добавить соединение, если поле Источник данных еще не содержит значение Microsoft SQL Server Compact Edition, нажмите кнопку Изменить... и измените значение на Microsoft SQL Server Compact Edition.
  3. В диалоговом окне Добавить соединение для переключателя Источник данных должно быть выбрано значение Мой компьютер.
  4. В том же диалоговом окне Добавить соединение, нажмите кнопку Создать.

    Откроется диалоговое окно Создать новую базу данных SQL Server Compact Edition (см. рис. 16).

    Изображение GIF Рис. 16. Диалоговое окно «Создать новую базу данных SQL Server Compact Edition»

  5. Выбрав нужный каталог, введите полный путь с именем файла базы данных NewDatabase.sdf. Например, чтобы создать файл базы данных в папке C:\MyProjects, введите имя файла базы данных как C:\MyProjects\NewDatabase.sdf.
    Примечание. SQL Server Compact Edition не требует указания в имени файла расширения SDF. Однако создавая файлы SQL Server Compact Edition, рекомендуется всегда добавлять расширение SDF, поскольку все инструменты предполагают, что файлы базы данных SQL Server Compact Edition имеют это расширение.
  6. Установите флажок Шифровать, чтобы обеспечить защиту базы данных.
  7. Для создания шифрованной базы данных необходимо ввести пароль доступа к базе данных. Введите слово password в поля Новый пароль и Подтверждение пароля.
  8. Нажмите кнопку ОК.

    На рис. 17 показано диалоговое окно с сообщением о том, что выбранный пароль не соответствует минимальным требованиям безопасности. Для работы с этим учебником можно оставить пароль доступа к базе данных password.

    Изображение GIF Рис. 17. Диалоговое окно с предупреждением о том, что пароль не соответствует минимальным требованиям безопасности (щелкните изображение, чтобы его увеличить)

  9. Нажмите кнопку Да, чтобы продолжить использование выбранного пароля.
  10. Теперь должно открыться диалоговое окно Добавить соединение (см. рис. 18). Чтобы создать соединение с базой данных, нажмите кнопку ОК.

    Visual Studio создает соединение с новой базой данных, которое теперь отображается на панели Обозреватель серверов.

    Изображение GIF Рис. 18. Добавление соединения с новой базой данных, защищенной паролем

Как создать таблицы в базе данных

  1. На панели Обозреватель серверов разверните узел только что созданного соединения с данными NewDatabase.sdf.
  2. Щелкните правой кнопкой мыши пункт Таблицы и в контекстном меню выберите команду Создать таблицу.

    Откроется диалоговое окно Создать таблицу.
  3. Чтобы задать имя новой таблицы, введите в поле Имя слово Customer.
  4. Добавьте столбец: щелкните ячейку под заголовком Имя столбца и введите имя столбца. Назовите этот столбец Id (Идентификатор).
  5. Теперь введите остальные параметры столбца: для параметра Тип данных выберите значение int, для параметра Разрешить пустые значения — Нет, для параметра Уникальные значения — Да и для параметра Первичный ключ — Да (см. рис. 19).

    Столбец Id будет использоваться как поле первичного ключа.

    Примечание. Если таблица имеет составной первичный ключ, то в каждом из столбцов, составляющих первичный ключ, выберите для параметра Первичный ключ значение Да.
  6. Добавьте столбец Name (Имя) и оставьте для него значения параметров по умолчанию, показанные на рис. 19.

    Изображение GIF Рис. 19. Добавление столбцов к новой таблице

  7. Чтобы создать таблицу, нажмите кнопку ОК.

    Visual Studio создаст таблицу Customer. Таблица Customer теперь видна на панели Обозреватель серверов (см. рис. 20).

    Изображение GIF Рис. 20. Вновь созданная таблица Customer

  8. Щелкните правой кнопкой мыши таблицу Customer и в контекстном меню выберите Открыть.

    Откроется пустая таблица Customer.
  9. Добавьте к таблице Customer запись, которая содержит значение 101 в поле Id и значение Fred в поле Name.
  10. Добавьте к таблице Customer еще одну запись, которая содержит значение 102 в поле Id и значение Barney в поле Name.

    На рис. 21 показана таблица Customer после добавления двух записей.

    Изображение GIF Рис. 21. Таблица Customer с новыми записями

  11. Закройте представление таблицы Customer, нажав кнопку X в правом верхнем углу представления. При перемещении курсора на следующую строку данные из предыдущей строки сохраняются в таблице Customer. Поэтому специально сохранять таблицу перед закрытием представления не требуется.

Создание запроса

  1. На панели Обозреватель серверов разверните узел соединения с данными NewDatabase.sdf (если он еще не развернут).
  2. Щелкните правой кнопкой мыши пункт Таблицы и в контекстном меню выберите Создать запрос.

    Откроется диалоговое окно Добавить таблицу, в котором перечислены таблицы, имеющиеся в этой базе данных. В нашей базе данных будет доступна единственная таблица Customer.
  3. Выберите таблицу Customer и нажмите Добавить в запрос. Столбцы таблицы Customer будут показаны в окне конструктора запросов.
  4. Чтобы закрыть диалоговое окно «Добавить таблицу», нажмите кнопку Закрыть.
  5. Установите флажки слева от столбцов Id и Name таблицы Customer, чтобы указать, что запрос будет возвращать значения этих столбцов.
  6. Обратите внимание, что в построителе запросов показан текст запроса, который соответствует таблице и выбранным столбцам. В некоторых случаях легче просто набрать часть текста запроса, чем использовать графический интерфейс конструкторов запросов. Измените текст запроса, чтобы в конце его была инструкция WHERE Name LIKE @name (см. рис. 22).

    Как видите, конструктор запросов поддерживает параметры SQL, такие как @name. Конструктор запросов автоматически предлагает ввести значения параметров при выполнении запроса.

    Изображение GIF Рис. 22. Запрос, созданный для выборки данных из базы данных Customer

  7. Запустите запрос в Visual Studio, последовательно выбрав команды Конструктор запросов | Выполнение SQL.

    На экране появится подсказка с запросом на ввод значения параметра @name.
  8. В качестве значения параметра @name введите текст f%, тогда запрос выберет все записи, в которых значение поля Name начинается с буквы «f». Чтобы посмотреть результаты запроса, нажмите кнопку ОК.

    Результаты запроса показаны на рис. 23.

    Изображение GIF Рис. 23. Результаты запроса

  9. Закройте конструктор запросов, нажав кнопку «X» в правом верхнем углу окна.

Обслуживание базы данных

Целью этого последнего раздела является ознакомление с функциями обслуживания, можно применять для баз данных SQL Server Compact Edition. Все функции обслуживания, описываемые в этом разделе, можно также вызывать программным способом с помощью класса System.Data.SqlServerCe.SqlCeEngine.

  1. На панели Обозреватель серверов щелкните правой кнопкой мыши соединение с данными NewDatabase.sdf и в контекстном меню выберите Свойства базы данных.

    Откроется окно Свойства базы данных, показанное на рис. 24.

    Изображение GIF Рис. 24. Окно «Свойства базы данных»

Заключение

Работая с этим учебником, вы выполнили следующие упражнения:

В этом учебнике показано, как использовать инструменты Visual Studio 2005 для быстрой разработки приложений, работающих с данными из БД SQL Server 2005 Compact Edition.