Как получить список дат, который частично хранится в базе данных, и привязать его в gridview в С#

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

Ниже приведен пример данных из базы данных:

DSB_Date   GloveID    DSB_BalQty  DSB_Sizes
3/7/2017    ABC123     100          M
3/7/2017    ABC123     200          XL
7/7/2017    ABC123     150          L
7/7/2017    ABC123     780          M

Как видите, с 4 по 6 июля записей нет. Но я все еще хочу, чтобы они были в виде сетки. Я хочу иметь вывод ниже:

GloveID : ABC123
Date          M     L    XL
3/7/2017     100    0   200     
4/7/2017      0     0    0    
5/7/2017      0     0    0
6/7/2017      0     0    0
7/7/2017     780   150   0

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

Запись, которая отображала представление сетки, извлекается с другой страницы по идентификатору перчатки. Скажем, со страницы A щелкните гиперссылку, и URL-адрес передаст идентификатор перчатки и перенаправит на страницу B, на которой указана вся информация.

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

 select DSB.GloveID, G.GloveCode, DSB_Month, DSB_Year, DSB_Date, 

      max(case when DSB_Sizes = 'M' then DSB_BalQty else 0 end) M,
      max(case when DSB_Sizes = 'L' then DSB_BalQty else 0 end) L,
      max(case when DSB_Sizes = 'XL' then DSB_BalQty else 0 end) XL     

  from tblDailyStockBal DSB

    left join tblGlove G on G.GloveID = DSB.GloveID

    where DSB.GloveID = @GloveID 
    group by DSB.GloveID, G.GloveCode, DSB_Month, DSB_Year, DSB_Date

Как я могу добиться этих date вещей в C#?
Я пытался приблизиться ниже, но все еще не получил того, чего хотел.

  1. Как создать представление Gridview с количеством дней в виде столбца на основе выбора месяца

  2. отображать строку дат для выбранного месяца в gridview с помощью asp.net


person Bella Shirota    schedule 10.10.2017    source источник
comment
Вам нужно предоставить более подробную информацию о вашем коде, как вы извлекаете данные в С# из mysql?   -  person H. Herzl    schedule 10.10.2017
comment
На данный момент я только что получил все данные, используя пример Gridview DataBind: GridView1.DataSource = mtsc.SelectAllByGloveID(gloveID); GridView1.DataBind(); Я вообще понятия не имею, как перечислить дату и привязать ее снова.   -  person Bella Shirota    schedule 10.10.2017
comment
Я рекомендую использовать повторитель, а внутри шаблона элемента использовать gridview для отображения данных в этом формате.   -  person H. Herzl    schedule 10.10.2017
comment
Вы имеете в виду использование репитера? Могу ли я использовать Datetime для получения информации о дате? Я думаю о том, чтобы получить месяц из базы данных, а затем использовать дату и время, чтобы получить общее количество дней этого месяца и перечислить все даты. Это как это должно работать?   -  person Bella Shirota    schedule 10.10.2017
comment
Да, я думаю, вам нужно использовать два запроса: первый для получения списка дат, а второй для получения сведений для каждой даты или сделать только один запрос и со стороны С# создать сгруппированные данные (каждая дата с деталями)   -  person H. Herzl    schedule 10.10.2017


Ответы (1)


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

SqlCommand cmd = new SqlCommand("SELECT * (or column name,column name)FROM dbo.name where Date between '" + @date1+ "' and '" +@date2 + "' order by Date desc", connection);
                SqlDataAdapter sd1 = new SqlDataAdapter();
                sd1.SelectCommand = cmd;
                DataSet dst1 = new DataSet();
                sd1.Fill(dst1, "table name");


               yourgridview.DataSource = dst1.Tables[0];

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

person Shivvanand Patil    schedule 10.10.2017
comment
Хорошо, я как бы получить идеи там. Но я думаю о том, как перечислить все даты. Например, в июле 31 день. Как заставить систему перечислить все даты? и привязать его к сетке? - person Bella Shirota; 10.10.2017
comment
предоставьте пользователю средство выбора даты, чтобы он мог выбрать дату и выполнить поиск, используя эту дату, я надеюсь, что это то, что вы хотите, если не предоставить некоторую информацию, которую вы хотите или ожидаете от своего приложения,,, - person Shivvanand Patil; 10.10.2017