У меня есть Gridview, где я могу изменить часть времени поля DateTime. Метод обновления работает хорошо, за исключением одного:
Поле должно содержать только часть времени, например, 08:23:09
, но в базе данных оно сохраняет его как полный DateTime, например, 10/18/2010 08:23:09 AM
. Проблема заключается в том, что при редактировании вместо добавления существующей части даты добавляется текущая часть даты. Поэтому, если я редактирую элемент из последнего примера в 08:25:09
вместо того, чтобы добавить его как 10/18/2010 08:25:09 AM
, он добавляет его как 10/20/2010 08:25:09 AM
, что явно нежелательно.
Вот как я делаю обновление:
protected void grvOutHour_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridView grvOutHour = (GridView)this.grvReport.Rows[grvReport.EditIndex].FindControl("grvOutHour");
TextBox txtBox = (TextBox) grvOutHour.Rows[e.RowIndex].FindControl("txtEditOutHour");
string outHour = this.Source[grvReport.EditIndex].EntryDate + " " + txtBox.Text;
odsOutHours.UpdateParameters["OutHour"].DefaultValue = outHour;
}
До этого момента значение outHour
является желаемым, например, 10/18/2010 08:25:09 AM
, но как только значение передается моему фактическому методу обновления:
public static void UpdateHour(int pEntryID, DateTime InHour, DateTime OutHour)
{
Hour hour = HoursDataMng.GetEntity(pEntryID, InHour.Date, InHour.TimeOfDay);
if (hour == null)
return;
else
{
hour.OutHour = OutHour;
HoursDataMng.SubmitChanges();
}
}
Я вижу, что OutHour изменился на 10/20/2010 08:25:09 AM
Что происходит?