Горизонтальный вывод DataGridView

Всем добрый день! Создаю приложение наподобие школьного журнала (скрин ниже). Суть проблемы в том, что необходимо из базы данных MySQL вывести данные в горизонтальном виде в одну строчку (самый верхний dgv). Заранее количество записей неизвестно. Подскажите, каким способом можно выполнить данную манипуляцию. Заранее большое спасибо


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

Автор решения: Alexander Petrov

В комментариях выяснили, что нужно развернуть колонку в строку.

Считываем данные из БД в List<T>, где T - нужный вам тип (замените его в коде).

Потом создаём в DataTable нужное количество колонок. И переносим данные из списка в DataTable.

string sql = "select someColumn from someTable";

var list = new List<string>();

using (var con = new MySqlConnection(_connectionString))
{
    con.Open();

    using (var cmd = new MySqlCommand(sql, con))
    using (var reader = cmd.ExecuteReader())
    {
        while (reader.Read())
        {
            list.Add(reader.GetString(0));
        }
    }
}

var dt = new DataTable();
for (int i = 0; i < list.Count; i++)
{
    dt.Columns.Add(i.ToString());
}
dt.Rows.Add(list.ToArray());

dataGridView.DataSource = dt;

Вероятно, есть смысл убрать заголовки колонок и строк, а также последнюю пустую строку.

dataGridView.ColumnHeadersVisible = false;
dataGridView.AllowUserToAddRows = false;
dataGridView.RowHeadersVisible = false;

В SQL существует операция, называемая pivot. Возможно, следует использовать этот способ. Но не зная структуры ваших данных сложно что-то сказать.

→ Ссылка