Shantanu sinha Ответов: 1

Как отобразить значения различных таблиц из БД в gridview


у меня есть 49 разных таблиц с именем Play_1 для Play_49
все таблицы имеют 2 столбца (number_i varchar(800), Date_ (varchar 800))
где i=1-49
я должен вызвать значения в моем представлении сетки с последними 4 записями
Итак, как объединить все эти таблицы, чтобы отобразить результат в одном виде сетки. order by Date_.
я должен присоединиться к столу 49.
результат должен быть таким
Date_ Таблица1 Таблица2........Table49
21/8/2016 23 55 66
20/8/2016 34 11 44
19/8/2016 12 65 22
18/8/2016 22 12 77

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

строка sqlQuery1 = " SELECT top(4) from Play_1 s INNER JOIN Play_2 ON PLay_1. Number_1=PLay_2. Number_2 ORDER BY convert(datetime, Date_, 103) DESC ";
SqlCommand command1 = new SqlCommand(sqlQuery1, con);
SqlDataAdapter da1 = новый SqlDataAdapter(command1);

DataTable dt1 = новый DataTable();
и DA1.Заполнить(ст1);
GridView1. DataSource = dt1;
Управления gridview1.Привязку();

1 Ответов

Рейтинг:
2

OriginalGriff

Во-первых, измените свою базу данных.
Если это дата - а она очень похожа - сохраните ее в поле DATE или DATETIME, а не в VARCHAR, и особенно не в VARCHAR (800). 800 байт для хранения 10-значного значения даты? Это и действительно неэффективно, и очень плохая идея - особенно когда вы хотите расположить вещи в порядке дат - данные VARCHAR сортируются посимвольно, причем первый другой символ определяет порядок всего столбца, что бесполезно для дат как такового. сначала выдает все 10-е числа месяца, затем 11-е, 12-е и так далее, а затем заказы через месяц после этого, так что вы получаете все 10-е января, затем 10-е февраля, ... затем 11-е января, 11-е февраля, и так далее.
То же самое относится и к числам: простое число, хранящееся в виде VARCHAR(800), так же глупо и трудно работать.

Измените свою базу данных, а затем используйте GROUP BY и JOIN, чтобы получить нужные вам результаты.