Как установить пользовательский текст в элементе управления Calendar на основе результата запроса SQL - PullRequest
0 голосов
/ 11 декабря 2018

Мое приложение - это проект 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 Как это:
Value for Dec 11 2018
Теперь я хотел бы получить тот же результат, но вместо того, чтобы указать конкретную дату, я хочу получить значение из запроса 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 Ответ

0 голосов
/ 13 декабря 2018

Для этого на основе 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();

        }
...