строка подключения от c# до msql - PullRequest
0 голосов
/ 16 июня 2020

Я новичок в m sql и работаю над MySQL Workbench 8.0 CE Я пытаюсь привязать данные из базы данных к datagridview, как показано ниже, но я получаю сообщение об ошибке ниже

, но Я могу подключиться к своей базе данных с помощью MySQL Workbench 8.0 CE, поэтому подключение работает, что я могу сделать?

    public void GetPersonData()
    {
        string connstr = "Server=localhost;Database=newsequesterdb;Uid=reser;Pwd=00";
        string query = "SELECT * FROM NEWSEQUESTERDB.PERSON;";

        using (SqlConnection conn = new SqlConnection(connstr))
        {
            using (SqlDataAdapter adapter = new SqlDataAdapter(query, conn))
            {
                DataSet ds = new DataSet();
                adapter.Fill(ds);
                dgv_data.DataSource = ds.Tables[0];
            }
        }
    }

сообщение об ошибке

System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Ответы [ 2 ]

0 голосов
/ 16 июня 2020

Дело в том, что вы не можете использовать ни экземпляр SqlConnection, ни SqlAdapter, они предназначены для SQL классов подключения к серверу. И это вы можете увидеть по самому исключению.

... (поставщик: поставщик именованных каналов, ошибка: 40 - Не удалось открыть соединение с SQL сервером )

Итак, что дальше? Вам действительно стоит взглянуть на этот вопрос , и он может разрешить некоторые сомнения.

Из этого вопроса мы видим, что используются другие ссылки для подключения к MySQL. В частности, пакет слепка Oracle: MySQL .Data

using MySql .Data;

using MySql .Data.MySqlClient;

Из этого примера вопроса:

var dbCon = DBConnection.Instance();
dbCon.DatabaseName = "YourDatabase";
if (dbCon.IsConnect())
{
    //suppose col0 and col1 are defined as VARCHAR in the DB
    string query = "SELECT col0,col1 FROM YourTable";
    var cmd = new MySqlCommand(query, dbCon.Connection);
    var reader = cmd.ExecuteReader();
    while(reader.Read())
    {
        string someStringFromColumnZero = reader.GetString(0);
        string someStringFromColumnOne = reader.GetString(1);
        Console.WriteLine(someStringFromColumnZero + "," + someStringFromColumnOne);
    }
    dbCon.Close();
}
0 голосов
/ 16 июня 2020

SqlConnection указывается c для сервера MS SQL. Вместо этого используйте MySqlConnection (и соответствующие классы команд и адаптеров данных).

Обратите внимание, что MySqlConnection не встроен в. NET Framework - вам потребуется установить его отдельно .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...