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 приводятся основные значения этих параметров.
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):
увеличить изображение
Рис. 2.27. Свойства объекта sqlConnection1 проекта VisualDataSQL