DataView排序问题

socg 2009-12-10 06:19:07
DataView中有一列 myTime 是DateTime类型,我想按它的日期部分排序,时间部分忽略,请问Sort属性该怎么写呢?

...全文
594 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
woshifou 2009-12-10
学习。
  • 打赏
  • 举报
回复
kimurakenshin 2009-12-10
微软语法说明:一个字符串,它包含列名,后跟“ASC”(升序)或“DESC”(降序)。在默认情况下列按升序排序。多个列可用逗号隔开。
由上可见不支持函数,动态加个列吧,可以把它隐藏掉,只要实现功能,看不见就好了,不要太别扭
  • 打赏
  • 举报
回复
kimurakenshin 2009-12-10
微软帮助:Sort一个字符串,它包含列名,后跟“ASC”(升序)或“DESC”(降序)。在默认情况下列按升序排序。多个列可用逗号隔开。
里面没有写可以表表达式,估计语法不支持吧
  • 打赏
  • 举报
回复
socg 2009-12-10
与sql语句无关,完全是内存表,也不想增加DataColumn,记得Sort中也可以用一些函数的
  • 打赏
  • 举报
回复
daichenghua 2009-12-10
在sql语句动态组合排序的字段 sortExpression 和方式 sortDirection (asc。desc)
  • 打赏
  • 举报
回复
daichenghua 2009-12-10
<asp:BoundField DataField="SaleDate" HeaderText="安装日期" SortExpression="SaleDate" DataFormatString="{0:yyyy-MM-dd}" HtmlEncode=false/>

if (this.gvMachineInfo.Attributes["SortExpression"] != null)
{
sortExpression = this.gvMachineInfo.Attributes["SortExpression"];
sortDirection = this.gvMachineInfo.Attributes["SortDirection"];
}
  • 打赏
  • 举报
回复
ctwei86 2009-12-10
觉得还是应该把排序写到sql语句中要好点。
  • 打赏
  • 举报
回复
liherun 2009-12-10
DataTable dt = DbHelperOra.Query_Table("select * from outdepot_tab");//写你自己的dt
DataView dv = new DataView(dt);
DataColumn dc = new DataColumn("sortdate", Type.GetType("System.DateTime"),null);//添加一列用于排序
dt.Columns.Add(dc);
for (int i = 0; i < dt.Rows.Count; i++)
{
dt.Rows[i]["sortdate"] = DateTime.Parse(dt.Rows[i]["outdepotdate"].ToString()).ToShortDateString();//把你查询出来的日期添加到新列里用于排序
}
dv.Sort = "sortdate";

dt = dv.ToTable();
  • 打赏
  • 举报
回复
Jeff20040819 2009-12-10
UP
  • 打赏
  • 举报
回复
outou 2009-12-10
一般的SORT属性应该不可以,可以自己写个排序方法。
  • 打赏
  • 举报
回复
发帖
C#

10.8w+

社区成员

.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
帖子事件
创建了帖子
2009-12-10 06:19
社区公告

让您成为最强悍的C#开发者