Посвящается моим родителям Анн и Майку Голдштейн, наставлявшим и поддерживавшим меня на протяжении жизни.
Моей жене.
В этой книге рассматриваются способы создания приложений для работы с базами данных на основе Visual Basic .NET и ADO.NET.
Хотя в ней описываются в основном провайдеры данных OLEDB и ODBC для .NET (глава 4, "Модель ADO.NET: провайдеры данных"), практически все примеры основаны на провайдере данных для сервера баз данных Microsoft SQL Server, которая используется большинством наших читателей. Более того, описываемые здесь подходы и концепции обычно можно очень просто применить для использования других источников данных. Все наиболее значительные отличия в способах использования этих технологий сопровождаются подробными комментариями.
Предполагая, что большинство читателей уже имеют опыт работы с сервером SQL Server, мы все же постарались сделать книгу доступной и для тех, кто не имеет большого опыта работы с ним. Некоторые читатели имеют ограниченный опыт работы с приложениями для баз данных или работали с другими типами баз данных, например с Microsoft Access или Oracle. Поэтому в главе 3, "Знакомство с SQL Server 2000", предлагается краткий обзор основных приемов работы с сервером Microsoft SQL Server. Опытные специалисты SQL Server могут без ущерба для понимания остальных глав пропустить эту вводную главу. Тем не менее следует учесть, что она покрывает широкий круг тем, а потому даже опытный читатель сможет найти в ней несколько полезных советов, ради которых стоит хотя бы бегло просмотреть всю главу.
Помимо основных сведений об SQL Server, здесь описываются язык XML и способы интеграции XML с ADO.NET. Этот очень важный аспект создания приложений баз данных с помощью Visual Basic .NET часто недооценивается или описывается недостаточно полно. Поскольку XML играет очень важную роль в создании современных приложений для работы с данными, эта тема излагается здесь очень подробно.
В книге содержится множество листингов и примеров, которые, несомненно, помогут наилучшим образом понять предлагаемый материал. Обычно описание основных принципов иллюстрируется очень простыми примерами, а затем для описания реального контекста предлагаются типичные бизнес-ситуации.
Предполагается, что читатель уже знаком с основами Visual Basic.NET. Хотя здесь предлагаются очень подробные и последовательные инструкции по созданию кода, все же в этой книге не ставилась цель обучить читателя основам синтаксиса Visual Basic. Мы считаем, что читатель уже владеет основными навыками работы с Visual Basic.NET и Visual Studio.NET, а потому решили не тратить времени на повторение общеизвестных базовых сведений. В частности, за исключением только первого примера, здесь не рассматриваются такие стандартные операции, как открытие и сохранение проектов. Наряду с этим, выполнение одной и той же операции нередко описывается несколькими разными способами, что позволит читателю расширить свои знания Visual Basic.NET без лишнего повторения одних и тех же базовых сведений. Поэтому часто приводятся разные стили кодирования и копии экранов для разных версий Windows, которые иллюстрируют гибкость Visual Basic.NET.
Большинство примеров этой книги демонстрируются с помощью типа проекта Windows Application на основе Windows Forms. Дело в том, что многие программисты на Visual Basic очень хорошо знают и часто используют этот тип проекта. Это позволяет нам сфокусироваться на способах доступа к базе данных, а не на особенностях использования разных типов проектов.NET. В последних главах книги описываются приложения на основе ASP.NET и Web-службы, поэтому в рассматриваемых там примерах представлены другие технологии и типы проектов.
Книга содержит три части. Первая часть состоит из глав 1-3 с предварительными сведениями о базах данных, языке SQL и сервере баз данных SQL Server. Эти фундаментальные сведения позволят читателю познакомиться с основными концепциями и понятиями, используемыми в книге. Кроме того, эти главы содержат краткие обзоры важных тем, которые будут полезны даже очень опытным специалистам в этих областях.
Вторая часть содержит основной материал книги. В главах 4-7 предлагаются подробные объяснения и многочисленные примеры основных объектов ADO.NET, a также способы использования их свойств и методов. В главе 7, дополнительные компоненты", рассматриваются более сложные компоненты и способы работы с объектами ADO.NET.
В третьей части книги приводятся фундаментальные способы применения ADO.NET для создания профессиональных приложений, а также рассматриваются методы использования проектов Visual Studio Data Projects для работы со сценариями SQL (глава 8, "Работа с проектом базы данных в среде Visual Studio.NET"), язык XML (глава 9, "XML и .NET") и вопросы интеграции XML с ADO.NET (глава 10, "ADO.NET и XML"). Наконец, в последних главах описываются дополнительные типы проектов на основе ADO.NET: Web-приложения на основе ASP.NET (глава 11, "Web-формы: приложения на основе ASP.NET для работы с базами данных"), а также Web-службы и объекты промежуточного уровня (глава 12, "Web-службы и технологии промежуточного уровня").
Предполагается, что читатель уже установил или способен самостоятельно установить интегрированную среду разработки приложений Visual Studio .NET. Следует учесть перечисленные различия, которые существуют между разными редакциями среды Visual Studio .NET в отношении функциональных возможностей и типа используемой базы данных.
Редакция Visual Studio. NET | Возможности |
---|---|
Standard | Просмотр таблиц и данных, выполнение хранимых процедур с помощью SQL Server Desktop Engine и Access |
Professional | Просмотр таблиц и данных, выполнение хранимых процедур с помощью любой базы данных с провайдером данных OLEDB или драйвером ODBC. Проектирование (создание или изменение) таблиц или представлений с помощью SQL Server Desktop Engine |
Enterprise Developer, Enterprise Architect | Просмотр таблиц и данных, выполнение хранимых процедур с помощыо любой базы данных с провайдером данных OLEDB или драйвером ODBC. Проектирование (создание или изменение) таблиц, представлений и хранимых процедур с помощью SQL Server Desktop Engine, SQL Server или Oracle |
В некоторых местах глав 1, 2 и 8 используются компоненты, которые предусмотрены только в редакциях Enterprise Developer или Enterprise Architect среды Visual Studio.
В главе 3, "Знакомство с SQL Server 2000", предлагается подробное описание процесса инсталляции SQL Server 2000, которое будет особенно полезно для читателей, не имеющих опыта инсталляции этого программного продукта. Для тестовой базы данных pubs, которая поставляется вместе с SQL Server, рекомендуется создать резервную копию, потому что она используется во многих примерах этой книги и ее данные часто редактируются.
В предлагаемых бизнес-ситуациях и многих примерах используется специально созданная для этой книги база данных Novelty. В главах 3 и 8 подробно описаны сценарии создания этой базы данных. Для использования примеров нужно сначала создать базу данных Novelty на компьютере с сервером SQL Server 2000 и наполнить ее данными. При описании этих операций предполагается, что читатель обладает всеми необходимыми правами для создания базы данных на этом сервере. Учтите, что некоторые пользователи применяют термин "база данных" к понятию "приложение для работы с базами данных", но в этой книге термин "база данных" означает "структурированный набор реляционных данных, которые хранятся в SQL Server 2000".
Коды всех примеров вместе со сценариями создания и наполнения данными базы данных Novelty, которая используется в этой книге, можно найти на Web-сервере Издательского дома "Вильяме" по адресу: http://www.williamspublishing.com. Для создания этой базы данных на компьютере с SQL Server 2000 выполните ряд действий.
1. Откройте программу Query Analyzer с помощью команды Microsoft SQL Server→Query Analyzer и подключитесь к нужному серверу SQL Server.
2. Откройте файл NoveltyDB.sql, выбирая команду меню File→Open (Файл→Открыть) и указывая место расположения этого файла.
3. После открытия этого файла его содержимое будет отображено в диалоговом окне.
4. Для выполнения сценария выберите команду Execute→Query (Выполнить→Запрос) или щелкните на кнопке с изображением зеленой стрелки.
5. После выполнения сценария будет создана база данных Novelty, которую можно наполнить данными, повторяя действия, описанные в пп. 2-4, для других сценариев с суффиксом Data в имени; например, сценарий OrdersData.sql вставляет данные в таблицу с заказами.
Учтите, что исходная версия 1.0 платформы .NET Framework и среда Visual Studio.NET не содержат провайдера данных для ODBC. Он входит в следующие версии и его можно скопировать отдельно с Web-узла компании Microsoft по адресу: http://www.microsoft.com. Кроме того, там же можно скопировать провайдер данных Microsoft.NET для Oracle, если вы используете базу данных Oracle, однако учтите, что в этой книге она не описывается.
Джеффри П. Мак-Манус (Jeffrey P. McManus) — разработчик и автор, специализирующийся на программных продуктах Microsoft. Как разработчик, он занимался созданием оперативных приложений на основе Internet-ориентированных и клиент-серверных технологий. Он автор четырех книг, включая предыдущее издание этой книги — бестселлер Обработка баз данных на Visual Basic® 6, а также две книги, посвященные .NET-ориентированным технологиям. Джеффри регулярно участвует в конференциях VBITS/VSLive, European DevWeek и VBConnections.
Джеки Голдштейн (Jackie Goldstein) — президент компании Renaissance Computer Systems, которая специализируется на создании приложений и предоставлении консультаций в области программных продуктов и технологий Microsoft. Более 18 лет он участвует в создании и сопровождении программных продуктов в США и Израиле, а также обладает огромным опытом оказания консультационных услуг и интеграции новых технологий. Джеки является региональным директором MSDN в Израиле, основателем израильской группы пользователей Visual Basic (VB User Group). Он регулярно выступает на международных конференциях разработчиков, включая VSLive!, TechEd, VBITS, Microsoft Developer Days и SQL2TheMax. Он также работал с компанией Microsoft в качестве эксперта по основным вопросам рецензирования, усовершенствования и завершения технических материалов и презентаций для всемирных конференций Microsoft Developer Days.
Кевин Т. Прайс (Kevin T. Price) — старший технолог, который специализируется на вопросах обеспечения безопасности и масштабирования (штат Вирджиния). В течение многих лет он сумел охватить все аспекты создания приложений с помощью набора инструментальных средств компании Microsoft. Он написал несколько глав для разных книг об XML, системе безопасности и технологиях.NET. Помимо своей основной работы, Кевин увлекается кулинарией и пейнтболом. С ним можно связаться по адресу: kpcrash@patriot.net.
Энжани Читаджаллу (Anjani Chittajallu) получила диплом мастера в области систем управления в Индийском технологическом институте (Indian Institute of Technology) в Мадрасе. Она специализируется в проектировании и разработке корпоративных систем на основе технологий Microsoft. Энжани имеет сертификат разработчика MSCD и с ней можно связаться по адресу: srianjani@hotmail.com.
Эндрю Дж. Индовина (Andrew J. Indovina) в настоящее время является старшим разработчиком программного обеспечения в Рочестере, штат Нью-Йорк (Rochester, New York). Помимо ученой степени по информатике, он обладает глубокими знаниями языков ассемблера, C/C++, Visual Basic, Java, XML, ASP и навыками программирования на них. Кроме того, он является соавтором двух книг о языках Visual Basic и C++, а также техническим редактором многочисленных книг по информатике. В последнее время Эндрю активно занимается созданием приложений на основе Microsoft .NET.
Мы хотим поблагодарить тех, кто помогал нам создать эту книгу, в частности: Сондру Скотт (Sondra Scott), ответственного редактора, которая решила множество проблем в процессе создания книги;
Лори Мак-Гвайр (Laurie McGuire), нашего наиболее терпеливого редактора, сделавшего очень много полезного;
Кевина Т. Прайса (Kevin T. Price), который согласился принять участие в создании этой книги и пополнить главы своими материалами, несмотря на сложные обстоятельства;
Энжани Читаджаллу (Anjani Chittajallu) и Эндрю Дж. Индовину (Andrew J. Indovina), технических рецензентов, которые не только проверили нашу работу, но и предложили множество полезных идей;
Майкла Пизо (Michael Pizzo) из компании Microsoft, который всегда быстро отвечал на наши вопросы или рекомендовал других более опытных специалистов;
наших жен, детей, родственников и друзей, которые поддерживали нас во время создания этой книги.