我想根據具有日期值的列對DataTable進行排序。我在來運行的問題,所以我創建了下面的測試方法:根據日期時間使用LINQ對DataTable進行排序時出現問題
private static void Test()
{
DateTime testDate = DateTime.Parse("01/01/2011");
DataTable table = new DataTable();
table.Columns.Add("dateValue");
table.Columns.Add("slNo");
DataRow row1 = table.NewRow();
row1["dateValue"] = "01/01/2011";
row1["slNo"] = "1";
DataRow row2 = table.NewRow();
row2["dateValue"] = "01/02/2011";
row2["slNo"] = "1";
DataRow row3 = table.NewRow();
row3["dateValue"] = "02/01/2011";
row3["slNo"] = "1";
DataRow row4 = table.NewRow();
row4["dateValue"] = "01/03/2011";
row4["slNo"] = "1";
table.Rows.Add(row1);
table.Rows.Add(row2);
table.Rows.Add(row3);
table.Rows.Add(row4);
var t = table.AsEnumerable().OrderBy(x => x.Field<DateTime?>("dateValue")).ToList();
}
我獲得以下錯誤:
Specified cast is not valid.
提供的日期可以解析爲DateTime對象。但仍然會出現上述錯誤。任何想法缺少什麼?
我使用C#3.5
是你的DateTime字段可空類型在你的數據表? –
是的,它是可以空的。但即使我在上面的方法使它不可空,它將無法工作.. – Amit
事實上,你沒有DateTime字段。你只是有一個字符串字段,你試圖把它轉換成DateTime。 –