el_tot93 Ответов: 1

Я не знаю, как решить эту ошибку ? считать


у меня есть 2, где то, что я локинг для того, чтобы иметь (где) (и)
where DB_A448D1_ilgswork.DueBy == DateTime.Today.ToLongDateString() 
                                where DB_A448D1_ilgswork.username == txtusername.Text


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

var getreminders = (from DB_A448D1_ilgswork in doAction.uni_projects
                                where DB_A448D1_ilgswork.DueBy == DateTime.Today.ToLongDateString() 
                                where DB_A448D1_ilgswork.username == txtusername.Text
                                select DB_A448D1_ilgswork).ToList();

            if (getreminders.Count >= 1)
            {
                lbldue.Visible = true;
                lbldue.Text = "You have " + getreminders.Count() + "reminders set for today";
                lbnoldue.Visible = false;
            }
            else
            {
                lbnoldue.Visible = true;
                lbldue.Visible = false;
            }

Richard Deeming

where DB_A448D1_ilgswork.DueBy == DateTime.Today.ToLongDateString()


Похоже, вы храните даты в виде строк. Не делай этого. Он не только занимает гораздо больше места, но и допускает недопустимые значения и приводит к проблемам с интерпретацией строк, генерируемых на компьютерах с различными региональными настройками.

Использовать DateTime или DateTimeOffset в вашей модели и используйте правильный тип данных даты и времени в вашей базе данных.

1 Ответов

Рейтинг:
1

TheRealSteveJudge

Вы не говорите, что это за ошибка.
Я предполагаю, что getreminders равен нулю, потому что ваш запрос не дал никаких результатов.
Вы не можете получить доступ к свойству Count, если getreminders имеет значение null.
Вы получите исключение нулевой ссылки.

Используйте отладчик и посмотрите сами.


ОК. Красная линия находится в вашей IDE.
Конечно, IQueriable не имеет свойства Count.
Затем вы должны преобразовать его в список.

var getreminders = (from DB_A448D1_ilgswork in doAction.uni_projects
                              where DB_A448D1_ilgswork.DueBy == DateTime.Today.ToLongDateString()
                              select DB_A448D1_ilgswork).ToList();


el_tot93

я получаю красную линию под ним

TheRealSteveJudge

Пожалуйста, смотрите обновленное решение.

el_tot93

Прости, мой брат, как я могу это сделать ??

TheRealSteveJudge

Просто замените строку 3 на 5 тем примером, который я вам показал.

el_tot93

спасибо он работать со мной

TheRealSteveJudge

всегда пожалуйста

el_tot93

извините вы можете увидеть мое обновление

TheRealSteveJudge

Пожалуйста, ознакомьтесь с обновленным решением.
Теперь никто другой не может понять решение
как вы изменили вопрос...
Пожалуйста, в будущем, один вопрос для каждой проблемы.

el_tot93

хорошо я так и сделаю