Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用vb.net对datagridview中的int列进行排序_Vb.net_Winforms_Sorting_Datagridview - Fatal编程技术网

如何使用vb.net对datagridview中的int列进行排序

如何使用vb.net对datagridview中的int列进行排序,vb.net,winforms,sorting,datagridview,Vb.net,Winforms,Sorting,Datagridview,我在datagridview中有一个列,它最初的数据类型是string,但是当我注意到它有排序问题,比如11022734,我已经将数据类型更改为int。但是问题仍然存在 我已经更新了数据库并配置了表,但仍然没有成功 我现在该怎么办?试试这个: Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '

我在datagridview中有一个列,它最初的数据类型是string,但是当我注意到它有排序问题,比如11022734,我已经将数据类型更改为int。但是问题仍然存在

我已经更新了数据库并配置了表,但仍然没有成功

我现在该怎么办?

试试这个:

Public Class Form1
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   'Creating test table
    Dim dt As New DataTable
    dt.Columns.Add("string")
    For i As Integer = 0 To 100
        dt.Rows.Add(dt.NewRow)
        dt.Rows(i)(0) = i.ToString
    Next

    'Sample
    dt.Columns.Add("integer", _
                GetType(System.Int32), "string")
    dt.DefaultView.Sort = "integer"
    dt.Columns("integer").ColumnMapping = _
             MappingType.Hidden
    DataGridView1.DataSource = dt
End Sub
End Class
”“或者


但是我没有在代码中添加列。。我有一个数据源。。抱歉,我不太擅长解释,但我想你会理解的,对吗?@J.Leo你可以对dataview进行排序,然后绑定到网格
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load

    Dim r As New Random
    For i As Integer = 0 To 99
        Me.DataGridView1.Rows.Add(r.Next(1, 99).ToString, r.Next(1, 99).ToString, r.Next(1, 99).ToString)
    Next

    ' this adds a new column of type Integer
    Me.DataGridView1.Columns.Add("Dummy", "Dummy")
    Me.DataGridView1.Columns("Dummy").ValueType = GetType(Integer)
    ' hide the new column
    Me.DataGridView1.Columns("Dummy").Visible = False

    ' copy the original column values (here I use column 2)
    ' as Integers into new column
    For Each row As DataGridViewRow In Me.DataGridView1.Rows
        With row
            Dim v As Integer = 0
            If Integer.TryParse(.Cells(2).Value.ToString, v) Then
                .Cells("Dummy").Value = v
            End If
        End With
    Next
End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
    ' sort DataGridView on column ("Dummy") which indirectly sorts on 
    ' original column(2) - Descending
    Me.DataGridView1.Sort(Me.DataGridView1.Columns("Dummy"), System.ComponentModel.ListSortDirection.Descending)
End Sub