新的System.Data.Common.DbProviderFactory类为数据库开发人员提供了创建数据源不明确的应用程序的可能性。创建能够与所有关系数据库管理器(托管数据提供者对其有效)无缝互操作的复杂数据输入应用程序并不是一件容易的事情。对于SQL语法、数据类型、存储过程所用的语言、容错处理以及其他依赖于数据库的功能中的微小差异,毫无疑问需要相应的定制处理。如果用户目前用.NET Framework的OleDb托管数据提供者或者是有OLE DB提供者的ADODB来传输数据库互操作性,那么可能会发现:Microsoft和第三方ADO.NET托管提供者提供的性能有所增强,因此具有更大的可伸缩性。另外,.NET对托管数据提供者赋予的实现范围使得人们难以编写对提供者完全透明的代码。
DbProviderFactories类的的使用步骤如下
1、需要在配置文件中配置上providerName
<configuration>
<connectionStrings>
<add name="SQL Server" providerName="System.Data.SqlClient"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Databases\MyData.mdf;Integrated Security=True;User Instance=True" />
</connectionStrings>
</configuration>
2、在代码中使用如下代码来创建
ConnectionStringSettings myConnectionSettings = ConfigurationManager.ConnectionStrings[myName];
//得到Provider
DbProviderFactory myProvider = DbProviderFactories.GetFactory(myConnectionSettings.ProviderName);
//得到Connection
DbConnection myConnection = myProvider.CreateConnection();
myConnection.ConnectionString = myConnectionSettings.ConnectionString;
myConnection.Open();
![]()
DbDataAdapter myAdapter = myProvider.CreateDataAdapter();
DbCommand myCommand = myProvider.CreateCommand();
![]()
myCommand.Connection = myConnection;
myCommand.CommandText = myQuery;
DbProviderFactories类的的使用步骤如下
1、需要在配置文件中配置上providerName
<configuration>
<connectionStrings>
<add name="SQL Server" providerName="System.Data.SqlClient"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Databases\MyData.mdf;Integrated Security=True;User Instance=True" />
</connectionStrings>
</configuration>2、在代码中使用如下代码来创建
ConnectionStringSettings myConnectionSettings = ConfigurationManager.ConnectionStrings[myName];
//得到Provider
DbProviderFactory myProvider = DbProviderFactories.GetFactory(myConnectionSettings.ProviderName);
//得到Connection
DbConnection myConnection = myProvider.CreateConnection();
myConnection.ConnectionString = myConnectionSettings.ConnectionString;
myConnection.Open();
DbDataAdapter myAdapter = myProvider.CreateDataAdapter();
DbCommand myCommand = myProvider.CreateCommand();
myCommand.Connection = myConnection;
myCommand.CommandText = myQuery;
浙公网安备 33010602011771号