Как установить пользовательский текст в элементе управления Calendar на основе результата запроса SQL
Мое приложение - это проект ASP.Ne/C#, использующий NPGSQL и POSTGRESQL. У меня есть элемент управления календаря на веб-странице с именем deskCal.aspx. На событии OnDayRender у меня есть следующее:
protected void CalRender(object sender, DayRenderEventArgs e)
{
if (e.Day.Date == new DateTime(2018,12,11))
{
Literal TheLit = new Literal();
TheLit.Text = "<br> X";
e.Cell.Controls.AddAt(1, TheLit);
}
}
Это помещает "X" в ячейку для 11 декабря 2018 г.
https://stackru.com/im ages/68d00530b592e473ef57c3e876fbb8147accdb5a.png
Теперь я хотел бы получить тот же результат, но вместо того, чтобы указать конкретную дату, я хочу получить значение из SQL-запроса. Однако я не уверен, как это сделать. Вот что у меня так далеко:
protected void CalRender(object sender, DayRenderEventArgs e)
{
NpgsqlConnection con = new NpgsqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MydatabBase"].ConnectionString);
string SelDate = "SELECT thedate FROM tbldateholder WHERE thedate = '2018-11-12' "
NpgsqlCommand getthedate = new NpgsqlCommand(SelDate,con)
if (e.Day.Date == NOT SURE WHAT TO DO HERE)
{
Literal TheLit = new Literal();
TheLit.Text = "<br> X";
e.Cell.Controls.AddAt(1, TheLit);
}
}
Должен ли я сделать читатель, а затем передать этот результат?
1 ответ
Решение
Для этого на основе запроса SQL это то, что работает для меня.
protected void CalRender(object sender, DayRenderEventArgs e)
{
con.Open();
string cmdRead = "SELECT theday FROM mytable Where theday = '2018-12-11'";
NpgsqlCommand thedate = new NpgsqlCommand(cmdRead, con);
var seeme = thedate.ExecuteScalar();
DateTime dt = Convert.ToDateTime(seeme);
if (e.Day.Date == dt)
{
Literal TheLit = new Literal();
TheLit.Text = "<br> X";
e.Cell.Controls.AddAt(1, TheLit);
}
con.Close();
}