Посмотрите на последний вход и выделите, если более месяца назад

#asp.net #vb.net #visual-studio #datagridview #datediff

#asp.net #vb.net #visual-studio #datagridview #datediff

Вопрос:

У меня есть gridview со столбцом, который показывает дату последнего входа участника. Я хочу выделить эту дату, если они не входили в систему более месяца.

У меня есть

 If DateDiff(DateInterval.Month, Now(), e.Row.Cells(10)) Then
        e.Row.Cells(10).BackColor = Drawing.Color.Red
    End If
  

Что, конечно, не работает. Пожалуйста, есть идеи?

Если вы еще не догадались, это что-то вроде новичка во всех этих вещах Visual Studio!

Комментарии:

1. вы просто выполняете различие, даже не проверяя РЕЗУЛЬТАТЫ этого различия.

Ответ №1:

В вашем примере DateDiff() вернет количество прошедших месяцев.

Таким образом, использование будет таким:

 If DateDiff(DateInterval.Month, Now(), CDate(e.Row.Cells(10))) > 1 Then
    e.Row.Cells(10).BackColor = Drawing.Color.Red
End If
  

Кроме того, смотрите Эту ссылку о Option Strict и Option Explicit я думаю Option Strict On , что это могло быть обнаружено во время компиляции.

Комментарии:

1. Спасибо! Теперь страница будет предварительно просмотрена, но не работает… Я получаю сообщение об ошибке «не удалось разрешить перегрузку, потому что с этими аргументами не может быть вызван доступный ‘datediff’ …»

2. Это будет потому, что e.Row.Cells (10) не имеет типа Date, а DateDiff требует значения типа Date. Пожалуйста, посмотрите мою правку (хотя вам следует добавить некоторую логику, чтобы проверить, что e.Row.Cells (10) могут быть преобразованы в тип даты).