Изменить действие обновления gridview, чтобы поставить время в столбце?
У меня есть сетка с 3 столбцами, только один столбец будет редактироваться пользователем. Всякий раз, когда он редактируется, я бы хотел установить один из других столбцов на текущее время. "Время последнего обновления", если хотите. Возможный?
2 ответа
Решение Энди работает.
Другим способом было бы изменить SQL-оператор UPDATE, связанный с сеткой. Используйте GetDate() (или ваш эквивалент БД) в выражении UPDATE, например:
ОБНОВЛЕНИЕ MyTable SET usereditvalue = @usereditvalue, mytimestamp = GETDATE()
Опционально с оператором Where:
ГДЕ MyTable.ID = @oldIDvalue
Чтобы сделать это таким образом, прочитайте о параметризованных запросах и значениях таблицы / таблицы ключей (для вашего оператора WHERE).
Добавьте обработчик событий в сетку так
Private Sub DataGridView1_CellEndEdit(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellEndEdit
If e.columnIndex > lowerBound AndAlso e.columnIndex < UpperBound Then
dataGridView1.item(columnNumberWithTimes, e.rowIndex).value = Date.Now
End If
End Sub
Этот метод предполагает наличие диапазона редактируемых столбцов, определяемых lowerBound и upperBound. Теперь, когда бы ни изменялась ячейка, если эта ячейка находится в этом диапазоне, ячейка в соответствующей строке в столбце, определенном columnNumberWithTimes, будет обновляться с новым временем.