Amar chand123 Ответов: 1

Выберите данные базы данных в datagridview в C# winform по группам по месяцам и годам


я пробую тот же метод, но безуспешно
во мне есть те же данные
Date  ----------  Name
01/03/2020  ----  mr.x
05/03/2020   ---- my.y
01/04/2020   ---- mr.z


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

я пробую эту струну
string DataLoad = "select month(Date) as Months, count(Name)as Count from customer GROUP BY month(Date)  ";

он отлично работает и показывает данные
data show like this
Months -- Count
03   ---- 2
04   ---- 1

Но я хочу, чтобы в моем DataGridView отображались данные
Month/Year -- Count
03/2020  ---- 2
04/2020  ---- 1

1 Ответов

Рейтинг:
10

phil.o

Ты можешь попробовать

string DataLoad = "SELECT Format([Date], \"mm/yyyy\") AS \"Month/Year\", Count([Name]) AS \"Count\" FROM [customer] GROUP BY Format([Date], \"mm/yyyy\")";


Amar chand123

не работать

phil.o

Не могли бы вы объяснить, что именно это означает? Какой результат вы получаете?

Amar chand123

DataGridView ничего не показывает без каких-либо ошибок

я использую базу данных access

И я использую это для сохранения даты в базе данных
cmd.параметры.AddWithValue ("@Date", dateTimePicker1.Value.Дата);

а в базе данных тип столбца DateTime

если я использую свою эту строку

строка DataLoad = "Выберите месяц(дата) как месяцы, количество(имя)как количество из группы клиентов по месяцам(дата) ";
затем данные отображаются в dataGridView только по группам по месяцам

phil.o

Итак, вы используете базу данных access, но пометили свой вопрос MySQL.
И вы удивляетесь, почему вы не получаете правильных ответов?

Amar chand123

извините, я пометил неправильно

phil.o

Я отредактировал свой ответ, чтобы предоставить решение для запроса MS Access.

Amar chand123

и спасибо тебе

phil.o

Пожалуйста.

Amar chand123

Но когда я использую это
строка DataLoad = "выберите Формат([дата], "мм/гггг") Как "месяц/год", Count([Name]) как "Count" из группы [customer] по формату([Date], "mm/yyyy")";


моя строка показывает ошибку, потому что "" в моей строке как "мм/гггг"

phil.o

Попробуй

string DataLoad = "SELECT Format([Date], \"mm/yyyy\") AS \"Month/Year\", Count([Name]) AS \"Count\" FROM [customer] GROUP BY Format([Date], \"mm/yyyy\")";

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

Amar chand123

По-прежнему никаких данных в dataGrid не отображается
но еще раз спасибо Вам за то что вы стараетесь изо всех сил решить может быть это невозможно в запросе доступа

phil.o

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

Amar chand123

Спасибо вам, сэр Фил, за эту заботу

phil.o

Пожалуйста.