Рейтинг:
23
RickZeeland
Что-то вроде этого:
private void myDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 5)
{
var mydatetime = DateTime.Parse(myDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value);
if (mydatetime.Hour > 9 && mydatetime.Minute > 30)
{
e.CellStyle.BackColor = Color.Yellow;
}
}
}
Убедитесь, что строка DateTime в вашем DataGridView имеет правильный формат, например
"2008-05-01 7:34:42Z"
, вы можете опустить время, но не часть даты.
Видеть:
значение datetime.Метод Синтаксического Анализа (Система)[
^]
Mohammad Imran1
1, Ошибка 1 лучший перегруженный метод соответствует системе'.значение datetime.Parse(string)' имеет некоторые недопустимые аргументы
2,Ошибка 2 Аргумент 1: не удается преобразовать из "объекта" в "строку"
Mohammad Imran1
пожалуйста, также дайте мне знать ниже запрос, который я хочу подсчитать общее опоздание, если время превысило 9:30
выберите ([Clock In]) из tbl_register, где name = 'Kashif' и ([Clock In]) > '9:30'
RickZeeland
выберите функции count([часы]) от tbl_register где name = 'класс' и ([часы]) &ГТ; '9:30'
Смотрите: https://www.w3schools.com/sql/sql_count_avg_sum.asp
Mohammad Imran1
Хорошо, Спасибо... Как насчет вышеприведенного запроса, дающего ошибку...
Ошибка 1 Лучший перегруженный метод соответствует системе'.значение datetime.Parse(string)' имеет некоторые недопустимые аргументы
2,Ошибка 2 Аргумент 1: не удается преобразовать из "объекта" в "строку"
Mohammad Imran1
Привет, есть тут какой-нибудь приятель?
RickZeeland
Да, я обновил решение в ответ на ваш вопрос, я также отправил ответ. Разве ты этого не видел ?
Mohammad Imran1
Нет, я не видел..ниже код не работает..это дает ошибку .
Ошибка 1 Лучший перегруженный метод соответствует системе'.значение datetime.Parse(string)' имеет некоторые недопустимые аргументы
2,Ошибка 2 Аргумент 1: не удается преобразовать из "объекта" в "строку"
{
если (например, ColumnIndex == 5)
{
var mydatetime = Дата-Время.Синтаксический анализ(myDataGridView.Ряды[электронный.Параметр rowindex].Клетки[e.Значение columnindex].Значение);
если (mydatetime.Час > 9 && mydatetime.Минута > 30)
{
е.CellStyle.BackColor = Цвет.Желтый;
}
}
RickZeeland
Нет смысла повторять один и тот же вопрос, ответ, который я дал в приведенном выше решении, таков::
Убедитесь, что строка DateTime в вашем DataGridView имеет правильный формат, например
"2008-05-01 7:34:42Z", вы можете опустить часть времени, но не дату.
Mohammad Imran1
Извини, что я пытался, но все равно то же самое. Позвольте мне сказать вам, что у меня есть часы в столбце базы данных, а тип данных-время.
Пожалуйста, дайте мне знать, что я новичок ... я не знаю, как работать неполный рабочий день с этим запросом.
Ожидание
Спасибо
Mohammad Imran1
Помните что у меня есть часы в столбце тип данных время в базе данных
RickZeeland
Это не очень хорошая идея, вы должны хранить дату + время в DateTime.
Mohammad Imran1
Ладно, босс.- Позвольте мне проверить это
Mohammad Imran1
Не работает вообще.. после изменения типа данных datetime..
частная dataGridView1_CellFormatting недействительным(объект отправителя, DataGridViewCellFormattingEventArgs е)
{
если (например, ColumnIndex == 6)
{
var mydatetime = Дата-Время.Синтаксический анализ(dataGridView1.Ряды[электронный.Параметр rowindex].Клетки[e.Значение columnindex].Значение.Метод toString());
если (mydatetime.Час > 9 && mydatetime.Минута > 30)
{
е.CellStyle.BackColor = Цвет.Желтый;
}
}
}
Рейтинг:
0
RickZeeland
При работе с Время поля, должно быть:
private void myDataGridView_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 5)
{
var mytime =myDataGridView.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
if (mytime > "09:30")
{
e.CellStyle.BackColor = Color.Yellow;
}
}
}
Но сначала вы должны сделать некоторую проверку, если это допустимое время, а не нулевое.
Mohammad Imran1
Это вообще не работает.. Мое время тип данных столбца типа datetime..
Mohammad Imran1
У меня есть добавить ниже код ..но ячейка не меняет цвет.. мой тип данных-datetime..
частная dataGridView1_CellFormatting недействительным(объект отправителя, DataGridViewCellFormattingEventArgs е)
{
если (например, ColumnIndex == 6)
{
var mydatetime = Дата-Время.Синтаксический анализ(dataGridView1.Ряды[электронный.Параметр rowindex].Клетки[e.Значение columnindex].Значение.Метод toString());
если (mydatetime.Час > 9 && mydatetime.Минута > 30)
{
е.CellStyle.BackColor = Цвет.Желтый;
}
}
}
RickZeeland
Запустите свой код в режиме отладки, поместите точку останова в строку var mydatetime и посмотрите, какое это значение, пройдитесь по коду с помощью F10.