使用应用程序配置文件存储工厂信息
用于处理工厂的设计模式要求必需在应用程序配置文件(如用于 Windows 应用程序的 app.config 和用于 ASP.NET 应用程序的 web.config)中存储提供程序和连接字符串信息。
下面的配置文件片段演示如何保存两个命名连接字符串:用于连接到 SQL Server 中 Northwind 数据库的“NorthwindSQL”和用于连接到 Access/Jet 中 Northwind 数据库的“NorthwindAccess”。 invariant 名称用于 providerName 属性。
<configuration> <connectionStrings> <clear/> <add name="NorthwindSQL" providerName="System.Data.SqlClient" connectionString= "Data Source=MSSQL1;Initial Catalog=Northwind;Integrated Security=true" /> <add name="NorthwindAccess" providerName="System.Data.OleDb" connectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/Data/Northwind.mdb;" /> </connectionStrings> </configuration>
按提供程序名称检索连接字符串
若要创建提供程序工厂,必须提供连接字符串和提供程序名称。 此示例演示如何通过以“System.Data.ProviderName”固定格式传递提供程序名称来从应用程序配置文件中检索连接字符串。 代码循环访问 ConnectionStringSettingsCollection。 成功时代码返回 ProviderName;否则返回 null(在 Visual Basic 中为 Nothing)。 如果提供程序有多项,则返回找到的第一项。 有关从配置文件中检索连接字符串的更多信息和示例,请参见连接字符串和配置文件 (ADO.NET)。
// Given a provider name and connection string, // create the DbProviderFactory and DbConnection. // Returns a DbConnection on success; null on failure. static DbConnection CreateDbConnection( string providerName, string connectionString) { // Assume failure. DbConnection connection = null; // Create the DbProviderFactory and DbConnection. if (connectionString != null) { try { DbProviderFactory factory = DbProviderFactories.GetFactory(providerName); connection = factory.CreateConnection(); connection.ConnectionString = connectionString; } catch (Exception ex) { // Set the connection to null if it was created. if (connection != null) { connection = null; } Console.WriteLine(ex.Message); } } // Return the connection. return connection; }