对datagridview问题进行排序

时间:2016-05-25 14:48:43

标签: vb.net datagridview

有人可以帮我分类我的datagridview(dataSource)。我的字段名称是ControlCode,它的数据类型是varchar。

Sorting Problem

    Dim dataAdapter As New MySqlDataAdapter
    Dim dataSet As New DataTable
    Dim bindSource As New BindingSource

            cmd = "SELECT * FROM documentsinfo"

            com = New MySqlCommand(cmd, con)

            dataAdapter.SelectCommand = com
            dataAdapter.Fill(dataSet).ToString()
            bindSource.DataSource = dataSet
            dataSource.DataSource = bindSource
            dataAdapter.Update(dataSet)

1 个答案:

答案 0 :(得分:0)

由于您的数据类型是nvarchar,因此将其排序为字符串,而不是整数 您需要像这样订购

cmd = "SELECT * FROM documentsinfo ORDER BY CAST(ISNULL(NULLIF(ISNUMERIC(Idchecklist),0),2147483647) as INT)

修改

cmd = "SELECT * FROM documentsinfo ORDER BY ControlCode+0, ControlCode;

编辑2

使用此代码,它将忽略前6个字符(PRJCT-)并按列号对列进行排序,因此只要列以相同的字符(PRJCT-)开头,它就可以正常工作

cmd = "SELECT * FROM documentsinfo ORDER BY CAST(SUBSTR(`ControlCode`, 7) AS SIGNED)"

如果它不起作用我的想法:/我建议您从字段中删除短划线,以便我的编辑1代码工作,或者将ID列添加到数据库并按其排序。