Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Троелсен Э. Язык программирования С# 2010 и п...docx
Скачиваний:
113
Добавлен:
21.09.2019
Размер:
6.92 Mб
Скачать

Соединение с базой данных в 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-команды.

  string strSQL = "Select * From Inventory";

  SqlCommand myCommand = new SqlCommand(strSQL, cn);

  // Получение объекта чтения данных в стиле ExecuteReader().

  SqlDataReader myDataReader;

  myDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);

  // Цикл по результатам.

  while (myDataReader.Read()) {

  Console.WriteLine("-› Марка – {0}, имя – {1}, цвет – {2}.",

   myDataReader["Make"].ToString().Trim(),

   myDataReader["PetName"].ToString().Trim(),

   myDataReader["Color"].ToString().Trim());

  }

  // Поскольку был указан CommandBehavior.CloseConnection,

  // для соединения нет необходимости явно вызывать Close().

  myDataReader.Close();

 }

}