C #: Как настроить значение, введенное пользователем в DataGridView? - PullRequest
0 голосов
/ 24 июня 2009

У меня есть DataGridView с привязкой к данным.Источник данных - это типизированный набор данных с таблицей, содержащей два столбца DateTime (BeginTimeStamp и EndTimeStamp).Я читаю и записываю данные в базу данных SQL Server 2005 с помощью команды Update типизированного набора данных.

Пользователь должен ввести дату в каждый из двух столбцов, которые я применяюиспользуя события CellValidating и RowValidating.Однако мне также необходимо убедиться, что применяются следующие два правила:

  1. Значение времени для столбца BeginDate всегда должно быть 00: 00: 00
  2. Значение временидля столбца EndDate всегда должно быть 23:59:59 (или, если хотите, 23:59:59)

Поскольку я не хочу, чтобы пользователь вводил 23:59:59все время я хотел бы как-то изменить вводимые пользователем данные в соответствии с 1. и 2. в моем коде.

Где и как мне это сделать?

EDIT

Извините, если мне неясно.Пользователь может ввести любую часть даты, однако часть времени фиксируется в полночь для BeginTimeStamp и 23:59:59 для EndTimeStamp.

Пример:

Пользователь вводит 2009/01/01 01:00:00 вечера как BeginTimeStamp.Моя заявка должна изменить это на 2009/01/01 00: 00: 00.

Пользователь вводит 2009/01/31 01:00:00 pm как EndTimeStamp.Моя заявка должна изменить это на 2009/01/31 23: 59: 59.

Ответы [ 4 ]

2 голосов
/ 24 июня 2009

Я бы просто отобразил DateTime в качестве даты и добавил бы время за кадром.

Это может быть, когда пользователь вводит данные, или то же самое, что и при записи данных в базу данных.

Если вы выберете первое, посмотрите на событие DataGridView.CellEndEdit.

См. Ответ Ноама для кода, чтобы правильно установить время.

1 голос
/ 24 июня 2009

Вы можете добавить следующие строки к вашему CellValidating методу после других проверок

DateTime newValue = oldValue.Date;

и

DateTime newValue = oldValue.Date.AddDays(1).AddSeconds(-1);
0 голосов
/ 24 июня 2009

Вы также можете выполнить проверку внутри установщика свойства:

 public DateTime BeginTimeStamp
 {
     get { return _dateTime; }
     set
     {
         // force the time to whatever you want
         _dateTime = value.Date;
     }
 }
0 голосов
/ 24 июня 2009

Я не уверен, что следую, пользователь должен ввести значение для двух дат, но они всегда одинаковы? Если я правильно понимаю, почему бы не установить значения по умолчанию в базе данных, то при чтении в набор данных значения уже будут там

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...