我有一个应用程序,允许我的用户对他们选择的数据库运行查询。数据库可以是SQL服务器或Oracle。此方法接受来自另一个类的两个参数,第一个参数是用户选择的数据库的连接字符串,第二个参数是数据库类型。该部分工作正常。我想要做的是削减我需要编写的代码,而不是一遍又一遍地输入查询和连接。所以,我想要做这样的事情。显然这不会工作,但我对大多数解决方案开放。动态选择SQL Server或Oracle数据库
public void createTable(string connectstring, string rdbms)
{
if (rdbms == "oracle")
{
con = new OracleConnection(connectionString);
con.Open();
OracleCommand query = con.CreateCommand();
}
else if (rdbms == "SQL Server")
{
con = new SqlConnection(connectionString);
con.Open();
SqlCommand query = con.CreateCommand();
}
else
{
// broke
}
query.CommandText = "CREATE TABLE " + RndName +
" (Col0 Varchar(10),Col1 Varchar(10), Col2 Varchar(10))";
query.ExecuteNonQuery();
con.Close();
executeInsertTransactions(connectstring);
}
'* Connection' *应该*实施['IDbConnection'](http://msdn.microsoft.com/en-us/library/system.data.common.dbconnection.aspx)同样地,' * Command' *应该实现[''IDbCommand'](http://msdn.microsoft.com/en-us/library/system.data.idbcommand.aspx)。 (然而,仍然有许多数据库特定性,但对于使用接口的*简单*情况应该可以。) – user2246674