Запись временного интервала в DataTable

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

viter.alex
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 221
Зарегистрирован: 27.07.2008 (Вс) 20:17
Откуда: Montreal

Запись временного интервала в DataTable

Сообщение viter.alex » 05.11.2009 (Чт) 14:21

Как отобразить в поле DataTable временной интервал?
Вот пример
Код: Выделить всё

    'поле времени начала отсчета
    With column
      .ColumnName = "StartTime"
      .Caption = "Время старта"
      .DataType = GetType(System.DateTime)
      .DefaultValue = Now
    End With
    dt.Columns.Add(column)
    'поле времени конца отсчета
    column = New DataColumn
    With column
      .ColumnName = "StopTime"
      .Caption = "Время останова"
      .DataType = GetType(System.DateTime)
      '.DefaultValue =
    End With
    dt.Columns.Add(column)
    'поле времени длительности отсчета времени
    column = New DataColumn
    With column
      .ColumnName = "CountdownTime"
      .Caption = "Продолжительность"
      .DataType = GetType(System.TimeSpan)
      .Expression = "IIF(StopTime Is Null, Null, StopTime - StartTime)"
    End With
    dt.Columns.Add(column)

Создаю в таблице два поля StartTime и StopTime типа System.DateTime и поле CountdownTime, в которое должна заносится разница между этими двумя полями, типа System.TimeSpan.
Если поле StopTime пустое, то все работает, а если я пытаюсь задать ему значение, то вычисление выражения "IIF(StopTime Is Null, Null, StopTime - StartTime)", которое прописано в свойстве Expression для поля CountdownTime, дает исключение:
System.Data.EvaluateException was unhandled
Message="Невозможно выполнить операцию "-" над System.DateTime и System.DateTime." …

Или как по-другому можно автоматически считать разницу во времени между двумя полями таблицы?

И еще. Почему в заголовках столбцов DataGridView отображается ColumnName, а не Caption?
Лучше день потерять — потом за пять минут долететь!

Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 32

    TopList