Чтение онлайн

ЖАНРЫ

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Троелсен Эндрю

Шрифт:

‹add name="SqlProviderPubs" connectionString="Data Source=localhost;uid=sa;pwd=;Initial Catalog=Pubs"/›

‹add name="OleDbProviderPubs" connectionString="Provider=SQLQLEDB.1;Data Source=localhost;uid=sa;pwd=;Initial Catalog=Pubs"/›

 ‹/connectionStrings›

‹/configuration›

Теперь обновите метод Main.

static void Main(string[] args) {

 Console.WriteLine("*** Источники поставщиков данных ***\n");

 string dp = ConfigurationManager.AppSettings["provider"];

 string cnStr = ConfigurationManager.ConnectionStrings["SqlProviderPubs"].ConnectionString;

 …

}

На

этой стадии нашего обсуждения вам уже должно быть ясно, как взаимодействовать с источником поставщика данных .NET 2.0 (и новым элементом ‹connectionStrings›).

Замечание. Теперь, когда вы понимаете роль источников поставщиков данных 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. Если необходимо, отредактируйте следующие строки (выделенные полужирным шрифтом).

CREATE DATABASE [Cars] ON (NAME = N'Cars_Data', FILENAME= N'С:\Program Files\Microsoft SQL Server\MSSQL\Data\Cars_Data.MDF', SIZE = 2, FILEGROWTH = 10%)

LOG ON (NAME = N'Cars_Log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Cars_Log.LDF', SIZE = 1, FILEGROWTH = 10%)

GO

Теперь выполните сценарий. После этого откройте окно утилиты 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, за которым следует его анализ.

class Program {

 static void Main(string[] args) {

Console.WriteLine("***** Забавы с чтением данных *****\n");

// Создание и открытие соединения.

SqlConnection cn = new SqlConnection;

cn.ConnectionString = "uid=sa;pwd=;Initial Catalog=Cars;Data Source=(local)";

cn.Open;

// Создание объекта SQL-команды.

Поделиться с друзьями: