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);
- }
- }