Vb.net 如何从DataGridView更改数据源绑定

Vb.net 如何从DataGridView更改数据源绑定,vb.net,optimization,datagridview,dataset,Vb.net,Optimization,Datagridview,Dataset,更改DataGridView的数据源时出现问题。 我有一个问题,这真的减慢了我的代码。第一次设置数据源只需4秒。更改数据源花费了23秒。这是不可接受的,数据库越大,花费的时间越长 我在这里和那里做了一些改变-现在我最糟糕的问题仍然是设置时需要0.06秒,更改数据源时需要3.66秒 我该如何解决这个问题?它似乎在更改数据源而不是替换数据源时删除或写入每一行 提前感谢: Private Sub getData(ByVal selectCommand As String) Try

更改DataGridView的数据源时出现问题。 我有一个问题,这真的减慢了我的代码。第一次设置数据源只需4秒。更改数据源花费了23秒。这是不可接受的,数据库越大,花费的时间越长

我在这里和那里做了一些改变-现在我最糟糕的问题仍然是设置时需要0.06秒,更改数据源时需要3.66秒

我该如何解决这个问题?它似乎在更改数据源而不是替换数据源时删除或写入每一行

提前感谢:

Private Sub getData(ByVal selectCommand As String)

    Try

        Dim connectionString As String = _
                            "Provider=Microsoft.Jet.OLEDB.4.0;" &
                            "Data Source=" & dbPath & ";"
        Dim ds As DataSet
        Dim dt As DataTable
        Dim da As OleDbDataAdapter
        Dim cb As OleDbCommandBuilder

        ds = New DataSet()
        da = New OleDbDataAdapter(selectCommand, connectionString)
        cb = New OleDbCommandBuilder(da)

        da.Fill(ds, "Main")
        dt = ds.Tables("Main")

        Dim z As Integer = 0
        For Each item As String In lstColumnNames
            dt.Columns(z).ColumnName = item
            z += 1
        Next

        If bs.DataSource IsNot Nothing Then bs.DataSource = Nothing

       ' v v v v v * Problem seems to be here * v v v v v
        bs.DataSource = dt
       ' ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ 

    Catch ex As OleDbException
        MessageBox.Show(ex.Message)
    End Try
End Sub

这个返回多少行?如果太多,你可以把它过滤成更小的一块。我的意思是没有人喜欢滚动1000行数据,对吗?你需要在虚拟模式下运行网格。下面是一个演练: