我有一个数据表填充了数据类型int
的可空年份列。此外,每年一次变化,我都添加了一个空白行。
DataTable table = new DataTable();
table.Columns.Add("Year", typeof(int));
table.Columns["Year"].AllowDBNull = true;
表格内容示例:
2005
2005
DBNull.Value
2006
DBNull.Value
2007
在逐行的基础上,只能查看当前行和下一行,我如何对此进行排序,以便DBNull.Value
行仍然将年份差异分开?
谢谢!
答案 0 :(得分:2)
我一般不喜欢这种设计,但是你可以这样做。
添加另一个double类型的列,它将隐藏在显示中,并将其命名为" SortYear"。对于包含多年的行,请将年份放在此隐藏列中。对于前一年加上0.5的空行。然后按SortYear排序,然后按照你真正想要排序的列除去年份。
Year SortYear ServiceDescription (or whatever)
2005 2005.0 Internet Service
2005 2005.0 Upgraded Cap Limits
DBNull.Value 2005.5
2006 2006.0 Internet Service
DBNull.Value 2006.5
2007 2007.0 Internet Service
order by SortYear, ServiceDescription
答案 1 :(得分:1)
您需要另一列来执行实际排序。使用时间戳或类似的东西,这样您就可以按插入顺序排序,但显示Year列与现在一样。