Datatable排序问题

xsmmk 2014-04-14 03:06:07
DataView.Sort ="组别",

我的组分别是:
TEAM1
TEAM2
TEAM3
TEAM6
TEAM4
TEAM5
TEAM7
TEAM8
TEAM9
TEAM10
TEAM11

Sort 的结果是:
TEAM1
TEAM10
TEAM11

TEAM2
TEAM3
TEAM4
TEAM5
TEAM6
TEAM7
TEAM8
TEAM9

求教如何排序能得到正确的结果,不能使用SQL语句查询的方式,要求在Datatable的基础上排序,谢谢.

不知Sort语句中能否使用函数先替换掉"TEAM"再排.
...全文
138 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xsmmk 2014-04-14
  • 打赏
  • 举报
回复
dalmeeme 2014-04-14
  • 打赏
  • 举报
回复
以后提问时请讲清楚版本,以免白写,这个只需.net 2.0:
		DataTable dt = new DataTable();
		dt.Columns.Add("组别");
		dt.Rows.Add("TEAM9");
		dt.Rows.Add("TEAM1");
		dt.Rows.Add("TEAM5");
		dt.Rows.Add("TEAM10");
		dt.Rows.Add("TEAM11");
		dt.Columns.Add("temp", typeof(int), "convert(substring(组别,5,3),System.Int32)");
		dt.DefaultView.Sort = "temp";
		dt = dt.DefaultView.ToTable(false, "组别");
		GridView1.DataSource = dt;
		GridView1.DataBind();
组别 TEAM1 TEAM5 TEAM9 TEAM10 TEAM11
Justin-Liu 2014-04-14
  • 打赏
  • 举报
回复
用int排序,把基础列改成int
xsmmk 2014-04-14
  • 打赏
  • 举报
回复
引用 2 楼 dalmeeme 的回复:
		DataTable dt = new DataTable();
		dt.Columns.Add("组别");
		dt.Rows.Add("TEAM9");
		dt.Rows.Add("TEAM1");
		dt.Rows.Add("TEAM5");
		dt.Rows.Add("TEAM10");
		dt.Rows.Add("TEAM11");
		dt = dt.Rows.Cast<DataRow>().OrderBy(x => int.Parse(x["组别"].ToString().Substring(4))).ToTable();
		GridView1.DataSource = dt;
		GridView1.DataBind();
组别 TEAM1 TEAM5 TEAM9 TEAM10 TEAM11
多谢回复,我用的是C#2.0 ,没有linq,还有别的办法吗?
wmg494005678 2014-04-14
  • 打赏
  • 举报
回复
你可以给DataTable额外加一个列,去掉Team专门用此列来进行比较
dalmeeme 2014-04-14
  • 打赏
  • 举报
回复
		DataTable dt = new DataTable();
		dt.Columns.Add("组别");
		dt.Rows.Add("TEAM9");
		dt.Rows.Add("TEAM1");
		dt.Rows.Add("TEAM5");
		dt.Rows.Add("TEAM10");
		dt.Rows.Add("TEAM11");
		dt = dt.Rows.Cast<DataRow>().OrderBy(x => int.Parse(x["组别"].ToString().Substring(4))).ToTable();
		GridView1.DataSource = dt;
		GridView1.DataBind();
组别 TEAM1 TEAM5 TEAM9 TEAM10 TEAM11
  • 打赏
  • 举报
回复
为什么不能使用SQL语句查询的方式?楼主是要实现什么需求?

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧