Visual Studio думает, что я хочу подключиться к SQL Server вместо MySQL? - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь установить соединение с базой данных MySQL в Visual Studio 2017. До сих пор использование мастеров и наборов данных для соединения работало идеально, но попытка установить соединение с использованием только кода приводит к этой ошибке:

Error 40: Could not open a connection to SQL Server

Прогнозирование этой ошибки, как и ожидалось, приводит к результатам, ориентированным на людей, использующих SQL Server, а я - нет.Что мне здесь не хватает?Я точно знаю, что моя база данных запущена и работает, потому что все остальные функции моей программы все еще работают.

using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["GenericDB.Properties.Settings.GenericDBConnectionString"].ToString()))
{
    try
    {
        string query = "SELECT name, siteID FROM site";
        SqlDataAdapter da = new SqlDataAdapter(query, conn);
        conn.Open();
        DataSet ds = new DataSet();
        da.Fill(ds, "site");
        cmbOrderReceiving.DisplayMember = "name";
        cmbOrderReceiving.ValueMember = "siteID";
        cmbOrderReceiving.DataSource = ds.Tables["site"];
    }

1 Ответ

0 голосов
/ 09 февраля 2019

Вы используете классы из клиентской библиотеки Sql, и эти классы работают только с Sql Server.После установки коннектора для MySql вы должны добавить правильную директиву using в ваши файлы кода

using MySql.Data.MySqlClient;

, а затем изменить каждую ссылку на классы SqlXXXX на классы MySqlXXXX

using (MySqlConnection conn = new MySqlConnection(.....))
{
    try
    {
        string query = "SELECT name, siteID FROM site";
        MySqlDataAdapter da = new MySqlDataAdapter(query, conn);
        conn.Open();
        DataSet ds = new DataSet();
        da.Fill(ds, "site");
        cmbOrderReceiving.DisplayMember = "name";
        cmbOrderReceiving.ValueMember = "siteID";
        cmbOrderReceiving.DataSource = ds.Tables["site"];
    }
}
...