2015-05-19 54 views
0

我有四列數據表:Date,isin,PriceState
我需要從Date列中獲取最小和最大日期。
我正在使用這段代碼,它可以很好地處理一個文件,但是與其他文件顯示我錯誤的最大日期。最小和最大數據表數據表

DateTime stDate = Convert.ToDateTime((excleTable.Compute("min(date)", string.Empty))); 
DateTime eDate = Convert.ToDateTime((excleTable.Compute("max(date)", string.Empty))); 

例如在第一行,我有02/27/2015和最後一排,我有03/31/2015但它只能讀取,直到03/09/2015這是不正確。
任何想法我該怎麼辦?

+0

什麼是你列的'DataType'?看起來像是'字符串'而不是'DateTime' – Habib

+0

是它的字符串數據類型 – Dev

回答

1

看起來你的列類型不是DateTime。如果你能解決這個問題比確保您DataTableDateTime類型date列,否則,你可以使用LINQ的MaxMin和你列轉換爲DateTime,如:

DateTime stDate = dt.AsEnumerable() 
        .Max(r => Convert.ToDateTime(r.Field<string>("date"))); 

DateTime eDate = dt.AsEnumerable() 
        .Min(r => Convert.ToDateTime(r.Field<string>("date"))); 

您可能需要使用DateTime.ParseExact轉換到DateTime,如果你的字符串值不符合缺省的/可DateTime格式,如:

DateTime stDate = dt.AsEnumerable() 
    .Max(r => DateTime.ParseExact(r.Field<string>("date"), 
            "MM/dd/yyyy", 
            CultureInfo.InvariantCulture)); 
+0

在我的情況下工作我想知道爲什麼我的兩行代碼不能用任何方式處理一個文件謝謝 – Dev

+0

@Tahir,字符串類型,它會使用自然排序順序,而不是您期望的「DateTime」排序順序。 – Habib