我希望能够使用相同的代码从多个数据源获取数据。在我的程序中,我得到了几个不同数据源的连接字符串(可能是ODBC,OLE DB和SQL)。
现在我不想为每个数据连接编写单独的代码。我可以告诉连接字符串要与哪些类一起使用(例如OleDbConnection,SqlConnection,OdbcConnection)。显然,它们都是DbConnection类的继承者。我想知道我是否可以用它来写一个访问它们的类?
答案 0 :(得分:1)
是的,您可以使用DbProviderFactory:
在.NET 2.x或更高版本中执行此操作ConnectionStringSettings c = ConfigurationManager.ConnectionStrings[name];
DbProviderFactory factory = DbProviderFactories.GetFactory(c.ProviderName);
using (IDbConnection connection = factory.CreateConnection())
{
connection.ConnectionString = c.ConnectionString;
... etc...
}