Джеффри П. Мак-Манус Джеки Голдштейн Кевин Т. Прайс Обработка баз данных на Visual Basic®.NET 3-е издание Database Access with Visual Basic®.NET Third Edition Jeffrey P. McManus Jackie Goldstein Kevin T. Price Addison-Wesley Предисловие Для кого предназначена эта книга Структура книги Используемое программное обеспечение Об авторах О соавторе О рецензентах Благодарности ГЛАВА 1 Основы построения баз данных Что представляет собой база данных Что такое платформа базы данных Бизнес-ситуации Бизнес-ситуация 1.1: основные сведения о компании Jones Novelties Incorporated Таблицы и поля Проектирование базы данных Бизнес-ситуация 1.2: проектирование таблиц и отношений Манипулирование данными с помощью объектов Типы данных Схема базы данных Использование инструментов Visual Studio для создания базы данных Определение индексов и первичного ключа Создание схемы базы данных Использование программы Microsoft Visio для просмотра и изменения схемы базы данных Отношения Использование ссылочной целостности для поддержания непротиворечивости данных Проверка ограничений ссылочной целостности с помощью Server Explorer Каскадные обновления и каскадные удаления Нормализация Отношения типа один-к-одному Отношения типа один-ко-многим Отношения типа многие-ко-многим Создание пользовательского интерфейса на основе Windows Forms Подключение к базе данных и работа с записями Создание приложения для просмотра данных Программный способ связывания данных Элементы управления, взаимодействующие с данными Обновление записей в приложении просмотра данных Создание новых записей в форме, связанной с данными Удаление записей из связанной с данными формы Проверка введенных данных в форме, связанной с данными Проверка введенных данных на уровне процессора баз данных Резюме Вопросы и ответы ГЛАВА 2 Запросы и команды на языке SQL Что такое запрос Тестирование запросов с помощью компонента Server Explorer Отбор записей с помощью предложения SELECT Указание источника записей с помощью предложения FROM Формирование критериев с использованием предложения WHERE Операторы, используемые в предложении WHERE Оператор BETWEEN Оператор LIKE и символы шаблона Оператор IN Сортировка результатов с помощью предложения ORDER BY Сортировка в убывающей последовательности Сортировка по нескольким полям Отображение первых или последних записей диапазона с помощью предложения ТОР Создание запросов TOP PERCENT Объединение связанных таблиц в запросе Выражение объединения в SQL Использование конструктора представлений для создания объединений Использование внешних объединений Выполнение вычислений в запросах Определение псевдонимов с использованием предложения AS Запросы, которые группируют данные и подводят итоги Применение предложения HAVING для группирования данных в запросах Функция SUM Перечень итоговых функций Запросы на объединение Подзапросы Манипулирование данными с помощью SQL Запросы на обновление Запросы на удаление Запрос на добавление записей Запросы на основе команды SELECT INTO Использование языка определения данных Создание элементов базы данных с помощью предложения CREATE Добавление ограничений в таблицу Назначение внешнего ключа Создание индексов с помощью команды CREATE INDEX Удаление таблиц и индексов с помощью предложения DROP Модификация структуры таблицы с помощью предложения ALTER Резюме Вопросы и ответы ГЛАВА 3 Знакомство с SQL Server 2000 Установка и запуск Microsoft SQL Server Требования для инсталляции SQL Server 2000 Установка SQL Server 2000 Запуск и остановка SQL Server Управление способом запуска SQL Server Основы работы с SQL Server 2000 Запуск программы SQL Server Enterprise Manager Создание базы данных с помощью программы SQL Server Enterprise Manager Создание таблиц в базе данных SQL Server Использование программы SQLServer Enterprise Manager для создания таблиц базы данных SQL Server Создание идентификационного поля для уникальной идентификации записей Использование других методов для генерации первичных ключей Создание поля с первичным ключом Использование программы SQL Query Analyzer для доступа к базе данных Просмотр всех объектов базы данных с помощью хранимой процедуры sp_help Использование существующей базы данных Создание команд SQL в программе Query Analyzer Использование представлений для управления доступом к данным Создание представлений с помощью программы SQL Server Enterprise Manager Использование представлений в приложениях Создание представления с помощью программы SQL Query Analyzer Создание и запуск хранимых процедур Запуск хранимых процедур в окне программы SQL Query Analyzer Создание хранимой процедуры с помощью программы SQL Query Analyzer Отображение текста существующих представлений или хранимых процедур Создание триггеров Бизнес-ситуация 3.1: создание триггера для поиска созвучных слов Управление пользователями и средства безопасности с помощью программы SQL Server Enterprise Manager Создание и сопровождение учетных записей пользователей Управление ролями с помощью программы SQL Server Enterprise Manager Тестирование системы безопасности с помощью программы SQL Query Analyzer Применение ограничений безопасности в программе SQL Query Analyzer Определение подключенных пользователей Завершение процесса с помощью команды KILL Удаление объектов базы данных Бизнес-ситуация 3.2: SQL-сценарий для создания базы данных Резюме Вопросы и ответы ГЛАВА 4 Модель ADO.NET: провайдеры данных Обзор технологии ADO.NET Мотивация и философия Поддержка распределенных приложений и отсоединенной модели программирования Расширенная поддержка XML Интеграция с .NET Framework Внешний вид объектов ADO.NET ADO.NET И ADO 2.X Место ADO.NET в архитектуре .NET Framework Прикладные интерфейсы Провайдеры данных ADO.NET Провайдер данных SqICIient Провайдер данных Oledb Провайдер данных Odbc Основные объекты Объект Connection Объект Command Применение объекта Command с параметрами и хранимыми процедурами Выполнение команд Метод ExecuteNonQuery Метод ExecuteScalar Метод ExecuteReader Объект DataReader Использование объектов Connection и Command во время создания приложения Другие провайдеры данных Бизнес-ситуация 4.1: создание процедуры для архивирования старых заказов по годам Резюме Вопросы и ответы ГЛАВА 5 ADO.NET: объект DataSet Компоненты объекта DataSet Ввод данных в объект DataSet Определение схемы объекта DataTable Вставка данных в объект DataTable Обновление данных в объекте DataSet Состояние и версия записи Обработка ошибок ввода данных в записи и поля Доступ к данным с помощью объекта DataTable Поиск, фильтрация и сортировка записей Отношения между таблицами Ограничения Применение объекта DataSet Резюме Вопросы и ответы ГЛАВА 6 ADO.NET: объект DataAdapter Передача данных из источника данных в объект DataSet Обновление источника данных Указание команд обновления Использование объекта CommandBuilder Явное указание команд обновления Вставка бизнес-логики в команды обновления Использование компонента DataAdapter во время создания приложения Бизнес-ситуация 6.1: комбинация нескольких связанных таблиц Резюме Вопросы и ответы ГЛАВА 7 ADO.NET: дополнительные компоненты Обнаружение конфликтов при параллельном доступе к данным Отображения таблиц и полей Объект DataView Бизнес-ситуация 7.1: просмотр данных из разных источников Строго типизированные наборы данных Резюме Вопросы и ответы ГЛАВА 8 Работа с проектом базы данных среде Visual Studio .NET Создание проекта базы данных Ссылки на базы данных Сценарии Сценарии создания данных Сценарии изменения данных Запуск сценария Командные файлы Запросы Резюме Вопросы и ответы ГЛАВА 9 XML И .NET Обзор XML Семейство технологий XML XML и доступ к данным Классы XML на платформе .NET Применение модели Document Object Model Применение технологии XPATH Утилита SQLXML Инсталляция и конфигурирование утилиты SQLXML Результаты конфигурирования Применение XML, XSLT и SQLXML для создания отчета Резюме Вопросы и ответы ГЛАВА 10 ADO.NET и XML Основные принципы чтения и записи XML-данных Чтение XML-данных Запись XML-данных Формат DiffCram Бизнес-ситуация 10.1: подготовка XML-файлов для бизнес-партнеров Создание объекта XmlReader с помощью объекта Command Объект XmlDataDocument Резюме Вопросы и ответы ГЛАВА 11 Web-формы: приложения на основе ASP.NET для работы с базами данных Обзор технологии ASP.NET HTML-элементы управления и серверные элементы управления Дополнительные преимущества технологии ASP.NET Доступ к базе данных с помощью ASP.NET Включение учетной записи ASP.NET в состав учетных записей SQL Server Применение параметра TRUSTED_CONNECTION Применение элемента управления DataGrid Повышение производительности приложений с помощью хранимых процедур Резюме Вопросы и ответы ГЛАВА 12 Web-службы и технологии промежуточного уровня Применение промежуточного уровня для презентационной логики Обработка данных на промежуточном уровне Создание повторно используемых компонентов промежуточного уровня Использование компонента в другом приложении Доступ к объектам с помощью Web-служб Публикация существующего компонента с помощью Web-службы Доступ к Web-службе программными средствами Заключительные замечания Резюме Вопросы и ответы
Указание источника записей с помощью предложения FROM Предложение FROM указывает на источник записей, из которого запрос извлекает записи. Этим источником может быть как таблица, так и другой хранимый запрос. У вас также есть возможность отбора записей из нескольких таблиц, которая подробно рассматривается далее, в разделе об объединении нескольких таблиц в одном запросе.
Предложения FROM работают совместно с предложениями SELECT. Например, чтобы отобрать все записи в таблице tblCustomer, используйте приведенную ниже команду SQL.
SELECT *
FROM tblCustomer
При выполнении этого запроса считываются все записи и все поля в таблице tblCustomer (без какого-либо упорядочения записей).
Чтобы отобрать только имя и фамилию клиентов, воспользуйтесь приведенной ниже командой SQL.
SELECT FirstName, LastName FROM tblCustomer
После изменения запроса в режиме конструктора представления выберите команду Query#8594;Run (Запрос#8594;Запуск) для обновления результатов выполнения запроса, которые теперь будут иметь такой вид, как на рис. 2.3.
РИС. 2.3. Результаты выполнения запроса на выборку данных из полей FirstName и LastName таблицы tblCustomer
Из соображений эффективности всегда ограничивайте число полей в предложении SELECT только теми полями, которые могут потребоваться вашему приложению. Обратите внимание, что записи, отобранные запросом SELECT FROM, в результирующем наборе не упорядочены. Если не задать порядок сортировки (использование предложения ORDER BY рассматривается ниже в этой главе), записи всегда возвращаются в неопределенном порядке.