날짜 값이있는 열을 기반으로 DataTable을 정렬하려고합니다. 내가 시험 방법에 따라 만든 그래서 나는 문제에 실행중인 :DateTime을 기준으로 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 개체로 해석 될 수있다. 그러나 여전히 위의 오류가 발생합니다. 어떤 아이디어가 빠졌습니까? 이것에
table.Columns.Add("dateValue");
:
table.Columns.Add("dateValue", typeof(DateTime?));
입니까? –
예, null입니다. 하지만 위의 메서드에서 nullable이 아닌 경우에도 작동하지 않습니다. – Amit
사실 DateTime 필드가 없었습니다. DateTime으로 캐스팅하려고했던 문자열 필드가 있습니다. –