Рис. 22.3. Получение поставщика данных OLE DB с помощью источника поставщика данных .NET 2.0
Конечно, не имея опыта работы с ADO.NET, вы можете иметь слабое представление о том, что именно делают объекты соединения, команды и чтения данных. Но не беспокойтесь до поры до времени о деталях (в конце концов, в этой главе еще немало страниц, а вам только предстоит их прочесть!). На данный момент важно только понять, что в .NET 2.0 вполне возможно построить единый базовый код, который сможет в декларативной форме принимать разных поставщиков данных.
Предложенная модель оказывается очень мощной, но вы должны убедиться в том, что ваш базовый программный код использует только те типы и методы, которые оказываются общими для всех поставщиков. Поэтому при создании общего программного кода ограничьте себя использованием членов, предлагаемых DbConnection.DbCommand и другими типами из пространства имен System.Data. Common. С другой стороны, вполне возможно, что такой "обобщённый" подход не позволит использовать некоторые специфические возможности конкретной СУБД, так что обязательно проверьте работоспособность создаваемого вами программного кода в реальных условиях.
Элемент ‹connectionStrings›
В рамках .NET 2.0 файлы конфигурации приложения могут определить новый элемент, названный ‹connectionStrings›. В контексте этого элемента вы можете определять любое число пар имен и значений, которые можно будет прочитать программными средствами, используя индексатор ConfigurationManager.ConnectionStrings. Главным преимуществом этого подхода (в отличие от использования элемента ‹appSettings› и индексатора ConfigurationManager.AppSettings) является то, что в этом случае вы можете определять множество строк соединений для одного приложении в единообразном стиле.
Для примера обновите свой файл арр.config так, как показано ниже (заметьте, что каждая строка соединения здесь задается атрибутами name и connection-String, a не key и value, как в случае ‹appSettings›).
‹configuration›
‹appSettings›
‹!-- Which provider? --›
‹add key= "provider" value="System.Data.SqlClient" / ›
‹/appSettings›
‹connectionStrings›
‹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 ( http://lab.msdn.microsoft.com/express). Хотя этот инструмент и не обладает абсолютно всеми возможностями полной версии Microsoft SQL Server, он позволит вам принять предлагаемую базу данных Cars, При этом учтите то, что примеры данной главы создавались с помощью Microsoft SQL Server, поэтому для выяснения всех проблемных моментов используйте документацию SQL Server 2005 Express Edition.
Чтобы установить базу данных Cars на своей машине, начните с запуска утилиты Query Analyzer (Анализатор запросов), поставляемой в рамках SQL Server. Соединитесь со своей машиной и откройте файл Cars.sql, предлагаемый в папке с исходным кодом примеров для данной главы. Перед тем как выполнить сценарий, убедитесь в том, что путь, указанный в SQL-файле, соответствует вашей инсталляции Microsoft SQL Server. Если необходимо, отредактируйте следующие строки (выделенные полужирным шрифтом).
Читать дальше