Krishna Chaitanya Bezawada Ответов: 1

Как реализовать круговую диаграмму или гистограмму из столбца таблицы данных после выполнения SQL-запроса на языке Си#


Привет,

Я разработал приложение, которое будет извлекать данные из таблицы SQL. Таблица будет состоять из двух столбцов. Один столбец-это число, а другой-время. В первом столбце я могу иметь одно и то же число, повторенное несколько раз.

Когда я выполняю программу, табличные данные отображаются в представлении datagrid в форме C# windows.

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

Например, в первом столбце у меня есть 400 чисел в 8 раз и 300 чисел в 2 раза. Поэтому, когда я нажимаю кнопку, она должна отображаться на диаграмме, например, 400-это 80%, а 300-это 20 %.

Пример таблицы данных похож на приведенную ниже ссылку:-

Элемент DataGrid — imgbb.com[^]

Что я уже пробовал:

Мой код для извлечения данных и отображения в datagridview выглядит следующим образом:-

conn.Open();
cmd = new SqlCommand(sql, conn);
SqlDataAdapter adapter = new SqlDataAdapter();
DataTable dt = new DataTable();
adapter.SelectCommand = cmd;
adapter.Fill(dt);
cmd.Dispose();
conn.Close();
dataGridView1.DataSource = dt;

1 Ответов

Рейтинг:
0

RickZeeland

Видеть: Начало работы с элементами управления диаграммами[^]
Или если вы хотите создать свой собственный контроль: Создание круговой диаграммы с использованием графики в C# .NET[^]
Можно даже сделать некоторые диаграммы в самом datagridview, см. статью CodeProject: DataGridView Диаграмма Стиля Ганта С Использованием C# WinForm [^]


Krishna Chaitanya Bezawada

Привет, спасибо за помощь.

Я использовал и применил это к своей программе. Дело в том, что если у меня есть 411.1 3 раза в таблице, я получаю 3 раза 411.1 в круговой диаграмме. Но мне нужно 411.1, чтобы отобразить 1 раз только со 100% диаграммой. Если у меня есть какие-то другие значения, то % должен варьироваться. Вы можете помочь с этим?

RickZeeland

Если вы используете SQL-запрос, возможно, вы можете использовать SELECT DISTINCT для выбора только уникальных значений.