Проблема с отображением колонок в DataGridView C#

Во время создания форм у меня возникла проблема с отображением данных, получаемых из MySQL. DataGridView, помимо заранее созданных колонок, при вызове запроса SELECT отображает сторонние колонки из базы данных.

Скриншот: Файл класса

Заполнение "таблицы"

Итог

 public void Display()
    {
        var DataBaseClients = new DataBaseClients();
        DataBaseClients.displayAndSearch("SELECT id_cl as '#', cl_fname as 'Name', cl_lname as 'Surname', cl_phone as 'Phone', cl_address as 'Address' FROM clients", dataGridView);
    }

public void displayAndSearch(string query, DataGridView dgv)
    {
        string sql = query;
        MySqlConnection connection = GetConnection();
        MySqlCommand command = new MySqlCommand(sql, connection);
        MySqlDataAdapter adapter = new MySqlDataAdapter(command);
        DataTable table = new DataTable();
        adapter.Fill(table);
        dgv.DataSource = table;
        dgv.AutoGenerateColumns = false;
        dgv.Columns["#"].DataPropertyName = "id_cl";
        dgv.Columns["Name"].DataPropertyName = "cl_fname";
        dgv.Columns["Surname"].DataPropertyName = "cl_lname";
        dgv.Columns["Phone"].DataPropertyName = "cl_phone";
        dgv.Columns["Address"].DataPropertyName = "cl_address";
        connection.Close();
    }

Ответы (1 шт):

Автор решения: Konst

не используйте заранее созданные колонки, а назначайте полученные из адаптера (нужный перечень колонок определите сразу в SQL), для вашей ситуации можно сделать таким образом:

   ...
    dgv.AutoGenerateColumns = false;
    dgv.DataSource = table;
    dgv.Columns["Name"].DataPropertyName = "cl_fname";
    dgv.Columns["Surname"].DataPropertyName = "cl_lname";
    ...
→ Ссылка