如何配置ADO.NET連接字符串
ADO.NET有很多值得學習的地方,這里我們主要介紹ADO.NET連接字符串,包括介紹從配置文件生成ADO.NET連接字符串等方面。如果事先知道連接字符串的某些元素,則可以將其存儲在配置文件中,并在運行時檢索它們以構造完整連接字符串。例如,可能事先知道數據庫的名稱,但不知道服務器的名稱。或者,您可能希望用戶在運行時提供用戶名和密碼,而不能在連接字符串中插入其他值。
#T#連接字符串生成器的一個重載構造函數將String作為參數,這可讓您提供部分連接字符串,然后通過用戶輸入使這部分連接字符串成為完整字符串。該部分連接字符串可以存儲在配置文件中并在運行時進行檢索。System.Configuration命名空間允許通過編程方式訪問配置文件(對Web應用程序使用WebConfigurationManager,對Windows應用程序使用ConfigurationManager)。有關使用ADO.NET連接字符串和配置文件的更多信息,請參見連接字符串和配置文件(ADO.NET)。
此示例演示如何從配置文件中檢索部分連接字符串并通過設置SqlConnectionStringBuilder的DataSource、UserID和Password屬性完成該連接字符串。配置文件定義如下。
- <connectionStrings>
- <clear/>
- <addnameaddname="partialConnectString"
- connectionString="InitialCatalog=Northwind;"
- providerName="System.Data.SqlClient"/>
- </connectionStrings>
必須在項目中設置對System.Configuration.dll的引用,才能運行代碼。
VisualBasic
- PrivateSubBuildConnectionString(ByValdataSourceAsString,_
- ByValuserNameAsString,ByValuserPasswordAsString)
- 'RetrievethepartialconnectionstringnameddatabaseConnection
- 'fromtheapplication'sapp.configorweb.configfile.
- DimsettingsAsConnectionStringSettings=_
- ConfigurationManager.ConnectionStrings("partialConnectString")
- IfNotsettingsIsNothingThen
- 'Retrievethepartialconnectionstring.
- DimconnectStringAsString=settings.ConnectionString
- Console.WriteLine("Original:{0}",connectString)
- 'CreateanewSqlConnectionStringBuilderbasedonthe
- 'partialconnectionstringretrievedfromtheconfigfile.
- DimbuilderAsNewSqlConnectionStringBuilder(connectString)
- 'Supplytheadditionalvalues.
- builder.DataSource=dataSource
- builder.UserID=userName
- builder.Password=userPassword
- Console.WriteLine("Modified:{0}",builder.ConnectionString)
- EndIf
- EndSub
C#
- privatestaticvoidBuildConnectionString(stringdataSource,
- stringuserName,stringuserPassword)
- {
- //RetrievethepartialconnectionstringnameddatabaseConnection
- //fromtheapplication'sapp.configorweb.configfile.
- ConnectionStringSettingssettings=
- ConfigurationManager.ConnectionStrings["partialConnectString"];
- if(null!=settings)
- {
- //Retrievethepartialconnectionstring.
- stringconnectString=settings.ConnectionString;
- Console.WriteLine("Original:{0}",connectString);
- //CreateanewSqlConnectionStringBuilderbasedonthe
- //partialconnectionstringretrievedfromtheconfigfile.
- SqlConnectionStringBuilderbuilder=
- newSqlConnectionStringBuilder(connectString);
- //Supplytheadditionalvalues.
- builder.DataSource=dataSource;
- builder.UserID=userName;
- builder.Password=userPassword;
- Console.WriteLine("Modified:{0}",builder.ConnectionString);
- }
- }