使用多态来实现数据库之间的切换
生活随笔
收集整理的這篇文章主要介紹了
使用多态来实现数据库之间的切换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、一般數據庫之間的轉換時這樣實現的?
static void Main(string[] args){//必須引入System.Data程序集string connectionString = ConfigurationManager.ConnectionStrings["SqlConfigurationManager"].ConnectionString;string providerName = ConfigurationManager.ConnectionStrings["SqlConfigurationManager"].ProviderName;IDbConnection con;if (providerName == "Access"){con = new OleDbConnection(connectionString);}else if (providerName == "Sql"){con = new SqlConnection(connectionString);}else{throw new Exception("不存在!");}using (con){con.Open();using (IDbCommand cmd = con.CreateCommand()){cmd.CommandText = "insert into Person (age) values(@age) ";//Access占位符通常使用問號?,當多個占位符參數時,要注意個數,而如果使用的是@作為占位符的話,就必須要注意Command添加參數時的順序,不然報錯,而?問號不要在意這個順序,所以推薦使用問號?作為占位符IDbDataParameter parameter = cmd.CreateParameter();parameter.ParameterName = "@age";parameter.DbType = DbType.Int32;parameter.Value = "110";cmd.Parameters.Add(parameter);cmd.ExecuteNonQuery();}}Console.WriteLine("插入成功!");Console.ReadKey(); }?App.config配置如下
<configuration><connectionStrings><add name="SqlConfigurationManager" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\db1.mdb" providerName="Access"/><!--<add name="SqlConfigurationManager" connectionString="Server=.;Database=Person;Integrated Security=True;Pooling=False"providerName="MsSqlServer"/>--></connectionStrings> </configuration>?2、通過DbProviderFactories實現
?一般providerName是有規范的命名的
在C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config里面的system.data節點下定義了
如果providerName為System.Data.Odbc,那么可以用于所有數據庫配置
如果為System.Data.OleDb,可用于Access數據庫配置
如果為System.Data.OracleClient,可用于Oracle數據庫配置
如果為System.Data.SqlClient,可用于MsSqlServer數據庫配置
注意ProviderName的配置
<configuration><connectionStrings><add name="SqlConfigurationManager" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\db1.mdb"providerName="System.Data.OleDb"/><!--<add name="SqlConfigurationManager" connectionString="Server=.;Database=Person;Integrated Security=True;Pooling=False"providerName="System.Data.SqlClient"/>--></connectionStrings> </configuration>?
轉載于:https://www.cnblogs.com/MrZivChu/p/ChangeDataBase.html
總結
以上是生活随笔為你收集整理的使用多态来实现数据库之间的切换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: u盘怎么导不出文件 U盘导出文件失败的解
- 下一篇: Solution 1: BST转双向链表