Рейтинг:
1
OriginalGriff
Если это только для целей отображения, то самый простой способ-обработать событие CellPainti8ng для DGV, проверить, является ли это "разностным столбцом", и если да, то вычислить его и показать значение. Я делаю что-то подобное с ячейками couling DGV, чтобы указать аномальные значения: Раскрашивание ячеек DataGridView в соответствии с их содержимым в WinForms[^] - это должно быть довольно легко сделать то, что вы хотели от этого.
Если вы хотите, чтобы он сохранялся обратно в вашу БД, то вам нужно будет работать с источником данных, а не с DGV .
Рейтинг:
1
Mohamed Aboelkheer
Возможно, вы можете использовать разницу между датой в sql-запросе
SELECT LastDate ,TodayDate ,DATEDIFF(day, LastDate, TodayDate) AS RemainingDay
Рейтинг:
0
phil.o
int remainingDays = (lastDate - todayDate).Days;
MadMyche
+5 Надеюсь, что эти столбцы действительно являются датами, а не строками
phil.o
Спасибо :) Я задавался тем же вопросом, но мы можем просто исправить ответ, если бы вместо правильного типа данных использовались строки.
Amar chand123
частная пустотная нагрузка()
{
по каждому элементу (ячейки datagridviewrow Row в dataGridView2.Строк)
{
DateTime dt = конвертировать.Объект todatetime(dataGridView2.CurrentRow.Ячейки["LasttDate"].Значение);
DateTime dt1 = конвертировать.Объект todatetime(dataGridView2.CurrentRow.Ячейки["TodayDate"].Значение);
инт Д12 = (ДТ - ст1).Дней;
ряд.Клетки["Дуэль"].Значение = d12;
}
}
сэр, я пробую этот код, но показать ошибку я новичок в программировании, так что вы можете помочь
Необработанное исключение типа 'System.Которого вызывается invalidcastexception произошел в mscorlib.dll
Дополнительная информация: объект не может быть приведен из DBNull в другие типы.
phil.o
Это означает, что одному из столбцов не было предоставлено никакого значения, и поэтому он является нулевым.
Как Примечание стороны, пожалуйста, не используйте Convert классы для парсинга велоэтапе; использовать значение datetime.Метод TryParse() вместо.
if (!DateTime.TryParse(dataGridView2.CurrentRow.Cells["LasttDate"].Value, out DateTime lastDate))
{
// Problem: lastDate could not be properly parsed. You have to decide what to do in that case.
// ...
}
if (!DateTime.TryParse(dataGridView2.CurrentRow.Cells["TodayDate"].Value, out DateTime todayDate))
{
// Problem: todayDate could not be properly parsed. You have to decide what to do in that case.
// ...
}
int remaining = (lastDate - todayDate).Days;