#c# #mysql #asp.net #panel
#c# #mysql #asp.net #панель
Вопрос:
Мне нужно заполнить asp:Panel
форму C # в aspnet строками значений, выбранными из таблицы базы данных MySQL. в этом примере у меня есть две строки, возвращенные из таблицы:
mysql> SELECT
dt,
hh,
dtes,
dori,
sali
FROM
`tbl_1` jjj
JOIN `tbl_2` kkk ON jjj.dori = kkk.dori
WHERE
dtes IN ('X250')
AND dt IN (
DATE_SUB(CURDATE(), INTERVAL 1 DAY)
)
AND sali = 'S'
GROUP BY
dt,
hh,
dori;
------------ ---------- ------ ------------- ------
| dt | hh | dtes | dori | sali |
------------ ---------- ------ ------------- ------
| 2020-08-14 | 14:15:22 | X250 | X2001383334 | S |
| 2020-08-14 | 14:42:48 | X250 | Y2001380456 | S |
------------ ---------- ------ ------------- ------
2 rows in set
Это мой код для заполнения asp:Panel
:
using (OdbcDataReader reader = command.ExecuteReader())
{
int count = 0;
if (reader.HasRows)
{
while (reader.Read())
{
count ;
if (count >= 1)
{
//populate asp Panel;
DateTime dt = Convert.ToDateTime(reader["dt"]);
txdtes.Text = reader["dtes"].ToString();
txdt.Text = dt.ToShortDateString();
txhh.Text = reader["hh"].ToString();
txdori.Text = reader["dori"].ToString();
txsali.Text = reader["sali"].ToString();
}
}
}
}
Моя проблема в том, что asp:Panel
заполняются только значения из первой строки запроса, но при вставке while
цикла он не должен заполнять asp:Panel
все строки из таблицы?
Как это решить?
Заранее спасибо за любую помощь и предложения
Комментарии:
1. Почему вы увеличиваете количество в начале цикла? Количество изначально равно 0 и увеличивается до 1 в первый раз в цикле. Во второй раз в цикле это два, и вы не переходите к IF.
2. Панель не отображает несколько строк. Рассмотрите возможность использования GridView и привязки к нему DataTable.
3. Вы также должны показать разметку вашей страницы в вопросе.