2
我有不同的數據源,如mysql,sql server和oracle,並且對於每個數據源,我將基於連接字符串測試與服務器的握手是否成功。測試各種rdbms的連接字符串的通用方法
所以我創建了3個類,每個這個類將有一個方法來測試連接字符串,但代碼是相同的,所以我在想,是否有可能創建1個通用方法來處理所有3個數據源如mysql,sql server和oracle,這樣我就不必爲每個數據源創建3個方法來測試連接字符串。
下面是我的代碼:
public class ConnectionViewModel
{
public string RdbmsType { get; set; }
public string ConnectionString { get; set; }
}
[HttpPost]
public ActionResult RdbmsServerHandshake(ConnectionViewModel model)
{
if (model.RdbmsType =="Mysql")
{
var mySqlRepo = new MysqlRepository();
var test = mySqlRepo.TestConnectionString(model.ConnectionString);
}
else if(model.RdbmsType == "SqlServer")
{
var sqlServerRepo = new SqlServerRepository();
var test = sqlServerRepo.TestConnectionString(model.ConnectionString);
}
else // for oracle
{
// code for oracle
}
}
public class SqlServerRepository
{
public bool TestConnectionString(string connectionString)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
return true;
}
catch (SqlException)
{
return false;
}
}
}
}
public class MysqlRepository
{
public bool TestConnectionString(string connectionString)
{
using (MySqlConnection connection = new MySqlConnection(connectionString))
{
try
{
connection.Open();
return true;
}
catch (SqlException)
{
return false;
}
}
}
}
所以沒有更好的辦法來做到這一點上面的過程?
我會感謝所有幫助:)
這worked.hank你這麼多的答案:) –