C # DBProviderName configuration for connecting to common databases,
To adapt to various database switching, we sometimes want to customize a general SqlHelper. The Common method is to return the Connection of the corresponding database in System. Data. Common. DbProviderFactories. GetFactory (dbProviderName). CreateConnection.
Directly test the source code:
String dbProviderName = "System. data. odbc "; dbProviderName =" System. data. oleDb "; dbProviderName =" System. data. sqlClient "; dbProviderName =" System. data. oracleClient "; // reference System. data. SQLite. dll dbProviderName = "System. data. SQLite "; // reference MySql. data. dll dbProviderName = "MySql. data. mySqlClient "; // reference Oracle. managedDataAccess. dll dbProviderName = "Oracle. managedDataAccess. client "; DbProviderFactory dbfactory = DbProviderFactories. getFactory (dbProviderName); DbConnection dbconn = dbfactory. createConnection (); dbconn. connectionString = string. empty; // database connection string
Config Configuration:
<?xml version="1.0" encoding="utf-8"?><configuration> <startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> <supportedRuntime version="v2.0.50727"/> </startup><system.data> <DbProviderFactories> <remove invariant="System.Data.SQLite"/> <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" /> <remove invariant="MySql.Data.MySqlClient"/> <add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" /> <remove invariant="Oracle.ManagedDataAccess.Client"/> <add name="Oracle Data Provider" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess" /> </DbProviderFactories> </system.data></configuration>
The code is attached.