#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) могут быть преобразованы в тип даты).