如何从DataGridView更改DataSource绑定

时间:2014-10-26 00:00:25

标签: vb.net optimization datagridview dataset

我在更改DataGridView的DataSource时遇到问题。 我有一个问题,这真的减慢了我的代码。通过设置DataSource第一次“仅”花费4秒。更改DataSource需要23秒。这是不可接受的(数据库越大,需要的时间越长)

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

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

提前致谢:)

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

0 个答案:

没有答案