使用多态来实现数据库之间的切换
生活随笔
收集整理的这篇文章主要介绍了
使用多态来实现数据库之间的切换
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
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盘导出文件失败的解
- 下一篇: 学习mysql触发器遇到的问题