按包含部件号和部件字母的列对数据表进行排序

时间:2014-10-15 15:11:16

标签: asp.net .net vb.net

我有一个数据表,我需要能够通过jobcode列对asc或desc进行排序。不幸的是,列字段值包含数字和字母,如下所示。

HD1233 HD12333 PG2839 TP9383

我需要提取数字,按数字排序然后再将它放回去。所以上面的内容在输出中会是这样的。

HD1233 PG2839 TP9383 HD12333

我有一段代码可以做某种类似的事情......

        Dim dtOut As DataTable = Nothing
        dt.DefaultView.Sort = Convert.ToString("jobcode" & Convert.ToString(" ")) &    drpAscorDesc.SelectedItem.Text
        dtOut = dt.DefaultView.ToTable()

我没有这些字母就无法正常工作。任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

  1. 将另一个Integer类型的列添加到DataTable。
  2. 遍历所有DataRows,根据这些数据行中的作业代码将值放入新列(读取值 - >删除所有非数字字符 - > Int32.TryParse())。
  3. 按新列排序。