Почему бы не получить дату прямо из источника для datagridview
, предположительно datatable
или dataset
? Если базовые данные изменяются позже, например, из-за ввода пользователя, таблица данных может вызвать событие , поэтому вы можете обновить sh текстовое поле.
Значение l oop совершенно не нужно Так же как и разбор и преобразование. Если у вас есть допустимые значения даты и времени, они могут быть легко отсортированы.
Кроме того, вы предполагаете, что дата всегда будет в определенном столбце, но пользователь может перетаскивать столбцы и изменять порядок отображения, и ваш код будет sh несчастно.
Таким образом, вместо:
dataGridView1.Columns[14].DefaultCellStyle.Format = "dd/MM/yyyy";
вы можете иметь:
dataGridView1.Columns[datagridview1.Columns["colDate"].Index].DefaultCellStyle.Format = "dd/MM/yyyy";
(не проверено, но должно быть очень близко, если не правильно)
Каждый столбец в таблице данных является элементом управления , и, надеюсь, вы дали им значимых имен столбцов (в данном примере: colDate
).
Вы можете извлечь максимальную дату из таблицы данных с помощью функции DataTable.Compute , например:
table.Compute("MAX([DateColumn 1])", "");
(Обработайте случай, когда таблица данных пуста, или ожидайте, что возвращаемое значение будет быть нулевым)
Другие альтернативы: используйте функцию DataTable.Select
или LINQ .