有人可以帮我分类我的datagridview(dataSource)。我的字段名称是ControlCode,它的数据类型是varchar。
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)
答案 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列添加到数据库并按其排序。