Как использовать тип данных TIME в SQL Server 2008 и C #? - PullRequest
1 голос
/ 08 марта 2012

Я занимаюсь разработкой веб-приложения на C # и SQL Server 2008.

У меня есть устройство чтения данных, которое читает столбец PlayTime, определенный как TIME тип данных.

Я хочунаписать функцию, которая возвращает значение PlayTime.

private static Timespan GetTime(IDataReader rdr, string columnName)`
{
    int index = rdr.GetOrdinal(columnName);

    if (rdr.IsDBNull(index))
    {
      return ; // Here I want to return null or zero 
    }

    return (TimeSpan)rdr[index];
}
  1. Прав ли я, используя Timespan для типа данных времени?

  2. Как вернуть null, если значение datareader равно нулю?

С наилучшими пожеланиями,

RedsDevils

Ответы [ 2 ]

1 голос
/ 08 марта 2012

Примерно так:

private static TimeSpan? GetTime(IDataReader rdr, string columnName)
{
    int index = rdr.GetOrdinal(columnName);
    if (rdr.IsDBNull(index))
    {
      return null;
    }
   return (TimeSpan)rdr[index];
}
1 голос
/ 08 марта 2012

Вам нужно использовать nullable Timespan

 private static Nullable<TimeSpan> GetTime(IDataReader rdr, string columnName)
        {
            int index = rdr.GetOrdinal(columnName);
            if (rdr.IsDBNull(index))
            {
                return null;
            }
            return (Nullable<TimeSpan>)rdr[index];
        }
...