datatable下列字段为:字段1,字段2,字段3,优先级。。。。
其中优先级为字符串,有3个字符串选择,高,中、低。
现在我想按照这个字符串排序,分别按照高中低来排序这个datatable,该怎么实现?
c# datatable 字符串排序
答案:2 悬赏:10 手机版
解决时间 2021-02-08 04:06
- 提问者网友:你挡着我发光了
- 2021-02-07 08:54
最佳答案
- 五星知识达人网友:十鸦
- 2021-02-07 10:14
这个和sql排序类似
datatable.Columns.Add("sortcell", typeof(int));//增加一个列int 型,用于排序
foreach (System.Data.DataRow row in datatable.Rows)//给 sortcell 赋值,高 0,中 1,低 2
row["sortcell"] = row["优先级"].ToString() == "高" ? 0 : row["优先级"].ToString() == "中" ? 1 : 2;
datatable.DefaultView.Sort = "sortcell asc";//将 sortcell 列 按升序排序你也可以直接在sql查询的时候就把 优先级 字段 做处理,
select 字段1,字段2,字段3,优先级,case 优先级 when '高' then 0 wehn '中' then 1 else 2 end as sortcell from tableName order by case 优先级 when '高' then 0 wehn '中' then 1 else 2 end asc;
当然后面的 order by 你可以不用写,在程序里面 用
datatable.DefaultView.Sort = "sortcell asc";//将 sortcell 列 按升序排序
也是可以的
datatable.Columns.Add("sortcell", typeof(int));//增加一个列int 型,用于排序
foreach (System.Data.DataRow row in datatable.Rows)//给 sortcell 赋值,高 0,中 1,低 2
row["sortcell"] = row["优先级"].ToString() == "高" ? 0 : row["优先级"].ToString() == "中" ? 1 : 2;
datatable.DefaultView.Sort = "sortcell asc";//将 sortcell 列 按升序排序你也可以直接在sql查询的时候就把 优先级 字段 做处理,
select 字段1,字段2,字段3,优先级,case 优先级 when '高' then 0 wehn '中' then 1 else 2 end as sortcell from tableName order by case 优先级 when '高' then 0 wehn '中' then 1 else 2 end asc;
当然后面的 order by 你可以不用写,在程序里面 用
datatable.DefaultView.Sort = "sortcell asc";//将 sortcell 列 按升序排序
也是可以的
全部回答
- 1楼网友:千杯敬自由
- 2021-02-07 11:03
用like
dt.select("id like '%|"+id+"'");
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯