Опубликован: 05.08.2007 | Уровень: специалист | Доступ: платный
Лекция 2:

Объекты ADO .NET

< Лекция 1 || Лекция 2: 123456 || Лекция 3 >

CommandText

Для извлечения таблиц и содержащихся в них данных используются SQL-запросы. Переменная CommandText содержит в себе SQL-запрос, синтаксис которого адаптирован для данного поставщика данных. Мы можем управлять извлечением данных, изменяя строку CommandText. Скопируйте папку проекта ProgrammDataSQL и назовите ее CommandText. Запустите проект и перейдите в код формы. Изменим string СommandText так, чтобы извлекать в DataGrid только поля CustomerID, ContactName, Country и Phone. Для этого удалим ненужные поля, в результате получится следующий SQL-запрос:

string CommandText = "SELECT CustomerID, ContactName, Country,
 Phone FROM Customers";

Запустите приложение. Теперь на форму выводятся только соответствующие четыре поля (рис. 2.25):

 Ограничение выводимых полей

Рис. 2.25. Ограничение выводимых полей

Выведем теперь все записи клиентов, имена которых начинаются на "М":

string CommandText = "SELECT CustomerID, ContactName, Country, 
 Phone FROM Customers where ContactName like 'M%'";

Запускаем приложение. Запрос выбрал только записи на букву "M" (рис. 2.26).

 Ограничение выводимых полей

Рис. 2.26. Ограничение выводимых полей

Вы можете использовать все возможности языка SQL для отбора данных и модификации строки CommandText для получения нужного результата. Не пробуйте только использовать команды insert, update или delete - изменение записей в базе данных мы рассмотрим позже.

В программном обеспечении к курсу вы найдете приложение СommandText (Code\Glava1\ СommandText).

ConnectionString

Строка соединения ConnectionString определяет параметры, необходимые для установления соединения с источником данных. Строка соединений при использовании мастеров генерируется средой, но можно (и желательно - во избежание неточностей и ошибок) писать эту строчку вручную. Рассмотрим еще раз строки соединения, которые были созданы при подключении к базам данных xtreme и Northwind.

База данных xtreme, проект ProgrammDataMDB:

string ConnectionString = @"Jet OLEDB:Global Partial Bulk Ops=2;
 Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;
 Jet OLEDB:Database Password=;Data Source="
 "E:\Program Files\Microsoft Visual Studio .NET 2003\Crystal 
 Reports\Samples\Database\xtreme.mdb"";Password=;
 Jet OLEDB:Engine Type=5;Jet OLEDB:Global Bulk
 Transactions=1;Provider=""Microsoft.Jet.OLEDB.4.0"";
 Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;
 Mode=Share Deny None;Jet OLEDB:New Database Password=;
 Jet OLEDB:Create System Database=False;Jet OLEDB:Don'
 Jet Copy Locale on Compact=False;
 Jet OLEDB:Compact Without Replica Repair=False;User ID=Admin;
 Jet OLEDB:Encrypt Database=False";

База данных NorthwindCS, проект ProgrammDataSQL:

string ConnectionString = 
 "workstation id=7EA2B2F6068D473;packet size=4096;
 integrated security=SSPI;data sou" +
 "rce=\"(local)\";persist security info=False;
 initial catalog=NorthwindCS";

В этих строках через точку с запятой просто перечисляются параметры соединения. В таблице 2.1 приводятся основные значения этих параметров.

Таблица 2.1. Основные параметры ConnectionString
Параметр Описание
Provider (Поставщик) Свойство применяется для установки или возврата имени поставщика для соединения, используется только для объектов OleDbConnection
Connection Timeout или Connect Timeout (Время ожидания связи) Длительность времени ожидания связи с сервером перед завершением попытки и генерацией исключения в секундах. По умолчанию 15
Initial Catalog (Исходный каталог) Имя базы данных
Data Source (Источник данных) Имя используемого SQL-сервера, когда установлено соединение, или имя файла базы данных Microsoft Access
Password (Пароль) Пользовательский пароль для учетной записи SQL Server
User ID (Пользовательский ID) Пользовательское имя для учетной записи SQL Server
Workstation ID Имя рабочей станции или компьютера
Integrated Security или Trusted Connection (Интегрированная безопасность или Доверительное соединение) Параметр, который определяет, является ли соединение защищенным. True, False и SSPI - возможные значения. (SSPI - эквивалент True)
Persist Security Info (Удержание защитной информации Когда установлено False, нуждающаяся в защите информация, такая как пароль, не возвращается как часть соединения, если связь установлена или когда-либо была установленной. Выставление этого свойства в True может быть рискованным в плане безопасности. По умолчанию False

При создании мастером строки ConnectionString происходит генерирование большого количества лишних параметров. Нельзя сказать, что они не нужны, просто мастер предусматривает все возможности использования этого подключения и вставляет соответствующие значения. В действительности необходимых значений для простого извлечения данных всего несколько:

  • Provider (только OLE DB)
  • Data Source
  • Initial Catalog
  • User ID/Password
  • Persist Security Info

Скопируйте папки с проектами ProgrammDataMDB и Programm DataSQL. Переименуйте копии в ConnStringMDB и ConnStringSQL. Измените значения ConnectionString следующим образом:

База данных xtreme, проект ConnStringMDB:

string ConnectionString = @"Provider=""Microsoft.Jet.OLEDB.4.0"";
 Data Source=""E:\Program Files\Microsoft 
 Visual Studio .NET 2003\Crystal Reports\Samples\Database\xtreme.mdb"";
 User ID=Admin;Jet OLEDB:Encrypt Database=False";

База данных NorthwindCS, проект ConnStringSQL:

string ConnectionString = "workstation
 id=7EA2B2F6068D473;integrated security=SSPI;
 data source=\"(local)\";persist security info=False;
 initial catalog=NorthwindCS";

Мы значительно сократили количество параметров, получив прежнюю функциональность приложений.

Где определяется строка подключения, когда мы создаем объект DataAdapter не программно, а с помощью мастера? Среда генерирует строку подключения вместе с кодом для DataAdapter, и в этом нетрудно убедиться. Запустите приложение, которое мы делали, вообще ничего не зная об объектах ADO .NET - DataWizardMDB. Перейдите в код формы, откройте область Windows Form Designer generated code и найдите строку подключения:

this.oleDbConnection1.ConnectionString = @"Jet OLEDB:Global Partial Bulk Ops=2;
 Jet OLEDB:Registry Path=;Jet OLEDB:Database Locking Mode=1;
 Jet OLEDB:Database Password=;Data Source="
 "D:\Uchebnik\Code\Glava4\RBProduct.mdb"
 ";Password=;Jet OLEDB:Engine Type=5;
 Jet OLEDB:Global Bulk Transactions=1;Provider="
 "Microsoft.Jet.OLEDB.4.0"";
 Jet OLEDB:System database=;Jet OLEDB:SFP=False;Extended Properties=;
 Mode=Share Deny None;Jet OLEDB:New Database Password=;
 Jet OLEDB:Create System Database=False;Jet OLEDB:Don'
 Jet Copy Locale on Compact=False;
 Jet OLEDB:Compact Without Replica Repair=False;
 User ID=Admin;Jet OLEDB:Encrypt Database=False";

Когда мы переносим объект DataAdapter из панели инструментов Toolbox (со вкладки Data) на форму, вместе с ним образуется объект DBConnection, в свойствах которого указывается строка ConnectionString и другие параметры подключения (рис. 2.27):

 Свойства объекта sqlConnection1 проекта VisualDataSQL

увеличить изображение
Рис. 2.27. Свойства объекта sqlConnection1 проекта VisualDataSQL
< Лекция 1 || Лекция 2: 123456 || Лекция 3 >
Александра Тимофеева
Александра Тимофеева
Украина, Киев
Bakke Aleksander
Bakke Aleksander
Россия, Mуниципальный округ N 4