2012-03-08 50 views
1

我正在开发用C#& SQL Server 2008的如何使用SQL Server 2008和C#TIME数据类型?

一个Web应用程序我有一个数据读取器读取列PlayTime,定义为TIME数据类型。

我想写一个返回PlayTime的值的函数。我立刻使用Timespan时间数据类型

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. 是谁?

  2. 如何返回null如果DataReader的价值是什么?

最好的问候,

RedsDevils

+1

你有没有考虑返回null的时间跨度 – 2012-03-08 07:16:56

+0

像你说的,我需要把“Timespan?” ,可以返回null吗? – RedsDevils 2012-03-08 07:22:38

回答

1

事情是这样的:

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

感谢您的回复! – RedsDevils 2012-03-08 07:35:26

+0

没问题。乐意效劳 – Arion 2012-03-08 07:37:36

1

您需要使用为空的时间跨度

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]; 
     } 
+0

感谢您的回复。在表中,列“玩耍”是“时间”数据类型:我不想日期。就像你显示它将包含日期,对吗? – RedsDevils 2012-03-08 07:20:14

+0

使用更新的代码 – PraveenVenu 2012-03-08 07:30:26

+0

我需要添加“可空”在回RDR [指数],它是只需要类型转换? – RedsDevils 2012-03-08 07:34:24

相关问题