如何区分MySQL和MS SQL数据库与代码?

时间:2016-09-09 12:26:09

标签: c# mysql sql-server database

我们有两个数据库和单一方法。 在我们的例子中,MySQL和Ms SQL db的查询是不同的。 我们需要定义何时使用查询到所需的db。 如何在C#中编码以查找现在正在使用的数据库?

4 个答案:

答案 0 :(得分:1)

您可以使用naive方法来检查将给sql server等的版本,这可以在sql server和mysql中同时使用

SELECT @@version

答案 1 :(得分:0)

如果它需要在一种方法中,您可以在一种方法中使用语句,例如,

using(SqlConnection conn1 = new SqlConnection("FirstConnectionString"))
{
    // your Query
}


using(SqlConnection conn2 = new SqlConnection("SecondConnectionString"))
{
    // your Query
}

在第一个和第二个Connections字符串中,您可以定义引用的数据库。

答案 2 :(得分:0)

我认为你可以使用这样的东西:为你正在使用的两种方法创建一个新类,在mysql中你输入类似的东西,或者你的代码中包含的任何东西

public void GetHighscore(int CurrScore) { MySqlConnection conn = new MySqlConnection("Server=localhost;Database=basket;Uid=root;pwd=;"); conn.Open(); MySqlCommand command = conn.CreateCommand(); command.CommandText = "select * from tblhighscore where id = 0"; command.Parameters.AddWithValue("@CurrScore", CurrScore); MySqlDataReader reader = command.ExecuteReader(); conn.Close(); }

对于ms sql,你用自己的查询和东西创建另一个类,我认为唯一的区别应该是sql的名称,例如:MySql只是sql。
您可以使用以下代码调用mysql,dbConnect.GetHighscore是对mysql类中的一段代码的引用,它将执行该段代码中的所有代码。:

dbConnect clDb = new dbConnect(); dbConnect.GetHighscore;

答案 3 :(得分:0)

我会做以下事情:

  • 在方法输入参数中添加一个枚举,用于决定哪种类型 应使用数据库(您必须先了解此信息 调用方法)
  • 在方法内部,根据枚举,我会选择合适的 查询然后调用另一种方法来运行MySQL查询和 一个用于运行MS SQL。在一种情况下使用OracleConnection,而在另一种情况下使用SqlConnection。