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 позволяет взаимодействовать с базой данных, используя объекты соединения, команд и чтения данных вашего поставщика данных. Вы уже использовали эти объекты в предыдущем примере 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();
}
}
Работа с объектами соединения
Первым шагом в работе с поставщиком данных является создание соединения с источником данных, для чего мы используем объект соединения (который, как вы помните, получается из Disconnection). Типы соединения .NET получают на вход форматированную строку соединения, содержащую набор пар имен и значений, разделенных точками с запятой. Эта информация используется для идентификации машины, с которой требуется установить соединение, параметров безопасности, имени базы данных на удаленной машине и других данных, связанных с конкретным поставщиком данных.
Читать дальше