Горизонтальный вывод DataGridView
Всем добрый день! Создаю приложение наподобие школьного журнала (скрин ниже). Суть проблемы в том, что необходимо из базы данных MySQL вывести данные в горизонтальном виде в одну строчку (самый верхний dgv). Заранее количество записей неизвестно. Подскажите, каким способом можно выполнить данную манипуляцию. Заранее большое спасибо
Ответы (1 шт):
В комментариях выяснили, что нужно развернуть колонку в строку.
Считываем данные из БД в 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. Возможно, следует использовать этот способ. Но не зная структуры ваших данных сложно что-то сказать.