2012-03-08 85 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

相關問題