ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
Шрифт:
Теперь обновите метод Main.
На
Замечание. Теперь, когда вы понимаете роль источников поставщиков данных ADO.NET, в остальных примерах этой главы будут использоваться типы из System.Data.SqlClient и "жестко" закодированные строки соединений, чтобы сфокусировать ваше внимание на соответствующих более "узких" задачах обсуждения.
Исходный код. Проект DataProviderFactory размещен в подкаталоге, соответствующем главе 22.
Установка базы данных Cars
Итак, теперь вам известны основные возможности поставщика данных .NET, и мы можем заняться обсуждением специфики программирования с помощью ADO. NET. Как уже упоминалось, в примерах этой главы будет использоваться Microsoft SQL Server. В русле автомобильной темы, которая используется во всей книге, мы рассмотрим пример базы данных Cars (Автомобили), содержащей три связанные таблицы с именами Inventory (Инвентарь), Orders (Заказы) and Customers (Заказчики).
Замечание. Если у вас нет копии Microsoft SOL Server, вы можете загрузить (бесплатную) копию Microsoft SQL Server 2005 Express Edition . Хотя этот инструмент и не обладает абсолютно всеми возможностями полной версии Microsoft SQL Server, он позволит вам принять предлагаемую базу данных Cars, При этом учтите то, что примеры данной главы создавались с помощью Microsoft SQL Server, поэтому для выяснения всех проблемных моментов используйте документацию SQL Server 2005 Express Edition.
Чтобы установить базу данных Cars на своей машине, начните с запуска утилиты Query Analyzer (Анализатор запросов), поставляемой в рамках SQL Server. Соединитесь со своей машиной и откройте файл Cars.sql, предлагаемый в папке с исходным кодом примеров для данной главы. Перед тем как выполнить сценарий, убедитесь в том, что путь, указанный в SQL-файле, соответствует вашей инсталляции Microsoft SQL Server. Если необходимо, отредактируйте следующие строки (выделенные полужирным шрифтом).
Теперь выполните сценарий. После этого откройте окно утилиты SQL Server Enterprise Manager. Вы сможете увидеть там три связанные таблицы (с некоторыми уже введенными данными) и одну хранимую процедуру. На рис. 22.4 показаны таблицы, формирующие базу данных Cars.
Рис. 22.4. База данных Cars
Соединение
с базой данных в Visual Studio 2005Итак, база данных Cars создана, и вы можете установить соединение с этой базой данных из Visual Studio 2005. Это позволит просматривать и редактировать различные объекты базы данных в среде разработки Visual Studio 2005. Используя меню View, откройте окно Server Explorer (Обозреватель серверов). Затем щелкните правой кнопкой мыши на узле Data Connections (Связь с данными) и выберите Add Connection (Добавить соединение) из контекстного меню. В появившемся диалоговом окне выберите в качестве источника данных Microsoft SQL Server. В следующем диалоговом окне выберите имя своей машины из раскрывающегося списка Server Name (Имя сервера) или просто укажите localhost а также укажите правильную информацию для входа в систему. Наконец, выберите базу данных Cars из раскрывающегося списка Select or enter a database name (Выбрать или ввести имя базы данных), рис. 22.5.
Рис. 22.5. Соединение с базой данных Cars в Visual Studio 2005
После завершения описанной процедуры, в рамках поддерева Data Connections должен появиться узел для Cars. Обратите внимание на то. что здесь же можно увидеть и записи любой таблицы, если щелкнуть на ее имени правой кнопкой мыши и выбрать Show Table Data (Показать данные таблицы) из появившегося контекстного меню (рис. 22.6).
Рис. 22.6. Просмотр данных таблицы
Связный уровень ADO.NET
Напомним, что связный уровень ADO.NET позволяет взаимодействовать с базой данных, используя объекты соединения, команд и чтения данных вашего поставщика данных. Вы уже использовали эти объекты в предыдущем примере DataProviderFactory, но давайте рассмотрим соответствующий процесс еще раз более подробно. Чтобы соединиться с базой данных и прочитать ее записи с помощью объекта чтения данных, необходимо выполнить следующие шаги
1. Разместить, настроить и открыть объект соединения.
2. Разместить и настроить объект команды, передав ему объект соединения в виде аргумента конструктора или с помощью свойства Connection.
3. Вызвать ExecuteReader для сконфигурированного объекта команды.
4. Обработать каждую запись, используя метод Read объекта чтения данных.
Для начала создайте новое консольное приложение с названием CarsDataReader. Нашей целью является открытие соединения (с помощью объекта SqlConnection) а отправка SQL-запроса (с помощью объекта SqlCommand) для получения всех записей из таблицы Inventory базы данных Cars. Затем мы используем SqlDataReader, чтобы напечатать результаты с помощью индексатора типа. Вот соответствующий программный код Main, за которым следует его анализ.