如果我们用access数据库,连接是这样定义的OleDbConnection,如果连接SQL Server就得用SqlDbConnection,请问有什么办法可以使更换数据库的时候,只要改动极少的代码,而不需要把所有的OleDbConnection都改成SqlDbConnection?
解决方案 »
- 怎么在打开父窗体的时候所有子窗体一起打开呢?
- VS2005的toolStrip控件怎么和imageList绑定啊!!
- 如何判断DataTable的某列的数据类型是否为SqlServer的Bit型?
- 如何在datagrid中加图片。要求在winform中。
- 急,visual studio tools for office怎么在我的.net环境中没有呢?
- C#调用delphi dll参数问题
- 菜得不能再菜和问题,欢迎大家进来拿分。。。。。。。。
- 着急,求一个Crystal Reports联机帮助文件,以前下载了一个,现在打不开了,希望有这方面资料的高手能给传一下
- 请教:.net软件工程师应具备哪些核心技术能力
- C# winform 皮肤设置后怎么改变背景色
- 对接口比较熟的请进?请教嵌套接口...
- 如何绑定textbox使用dataAdapter和dataSet向数据库里插入数据
如果要适用多数据库,最好写一个类,专门负责处理与不同数据库的交互
用
DbConnection
DbCommand
用
DbConnection
DbCommand
--------------------------------------
能不能给出具体的代码?
using System.Data.Common;
using System.Data.SqlClient;
...
DbConnection conn = null;
ConnectionStringSettings s = ConfigurationSettings.ConnectionStrings["ConnectionStrings"];DbProviderFactory factory = DbProviderFactories.GetFactory(s.ProviderName);if ((factory.SupportedClasses & DbProviderSupportedClasses.DbConnection) > 0)
{
conn = factory.CreateConnection();
conn.ConnectionString = s.ConnectionString;
}DbCommand selectCommand = null;
if ((factory.SupportedClasses & DbProviderSupportedClasses.DbCommand) > 0)
{
selectCommand = factory.CreateCommand();
selectCommand.CommandText = "SELECT * from dbo.Customers";
selectCommand.Connection = conn;
}conn.Open();DbDataReader dataReader = selectCommand.ExecuteReader();while (dataReader.Read())
Console.WriteLine(sqlDataReader.GetString(0));conn.Close();