MySQL DataGridView绑定

MySQL DataGridView绑定,mysql,vb.net,datagridview,Mysql,Vb.net,Datagridview,我有以下代码连接到MySql服务器 Dim oConn As MySqlConnection Dim sConnStr As String Dim oDbAdapter As MySqlDataAdapter Dim oTable As Data.DataTable sConnStr = String.Format("Server=localhost;User=user; Password=pass; Database=db; Pooling=false"

我有以下代码连接到MySql服务器

    Dim oConn As MySqlConnection
    Dim sConnStr As String
    Dim oDbAdapter As MySqlDataAdapter
    Dim oTable As Data.DataTable
    sConnStr = String.Format("Server=localhost;User=user; Password=pass; Database=db; Pooling=false") '
    oConn = New MySqlConnection(sConnStr)
    oConn.Open()
    oTable = New Data.DataTable()
    oDbAdapter = New MySqlDataAdapter("SELECT * FROM test", oConn)
    DataGridView1.DataSource = oTable
    oDbAdapter.Fill(oTable)
但是,当我切换最后两行的顺序时,此代码可以工作

    Dim oConn As MySqlConnection
    Dim sConnStr As String
    Dim oDbAdapter As MySqlDataAdapter
    Dim oTable As Data.DataTable
    sConnStr = String.Format("Server=localhost;User=user; Password=pass; Database=db; Pooling=false") '
    oConn = New MySqlConnection(sConnStr)
    oConn.Open()
    oTable = New Data.DataTable()
    oDbAdapter = New MySqlDataAdapter("SELECT * FROM test", oConn)
    oDbAdapter.Fill(oTable)
    DataGridView1.DataSource = oTable
当我逐步使用时,我注意到该命令运行到.fill命令,然后跳过将其分配到DataGridView

不知道为什么会发生这种情况,因为“从SQL获取数据后,将其分配给datagridview”更有意义


PS:datagridview只是一个空网格,没有任何赋值。

该代码是否在表单的
Load
事件处理程序中?如果是这样的话,我的猜测是
Fill
调用抛出了一个异常,该异常在该位置被默默地吞没。尝试将代码包装到异常处理程序中以查找。顺便说一句,不要
打开连接,然后在不再次关闭连接的情况下调用
Fill
。如果您只需调用一次
Fill
Update
,则无需亲自调用
Open
。这两种方法都将隐式地打开连接,如果(但仅当)它首先打开了连接,则最好再次关闭连接。通过自己打开它,您告诉
Open
方法不要关闭它,但是您也不会关闭它。糟糕,是的,我知道。我确实在脚本中关闭了它,只是作为一个示例显示