MySQL DataReader中没有当前查询

时间:2017-04-03 20:26:22

标签: mysql vb.net datareader

我有一个列表,当我启动程序时自动填充:

lstTrabajadores.Items.Clear()
    ServerConnection()
    Try
        Dim MyCommand As New MySqlCommand("select * from caburga.trabajadores", MyConnection)
        Dim MyReader As MySqlDataReader
        MyReader = MyCommand.ExecuteReader
        If MyReader.HasRows Then
            While MyReader.Read
                lstTrabajadores.Items.Add(MyReader.GetString("nombreCompleto"))
            End While
        Else
            lstTrabajadores.Items.Add("No hay trabajadores registrados.")
        End If
        MyReader.Close()
        MyReader.Dispose()
        MyConnection.Close()
    Catch ex As MySqlException
        MsgBox("Error " & Environment.NewLine & ex.Message & Environment.NewLine & "Contáctese con el administrador del sistema.")
    Finally
        MyConnection.Dispose()
    End Try

现在,我已经关闭并处理了我使用过的所有读者。问题是我想用链接到列表内容的数据填充文本字段。

该程序的工作原理如下,我启动程序,它填充列表,我点击列表项,我得到一个"没有当前查询数据阅读器" VB.Net错误,以及"已经有一个与此Connection关联的开放DataReader,必须先关闭",MySQL异常。

当我点击列表项时,这是列表选择索引更改的代码:

Try
        ServerConnection()
        Dim MyCommand As New MySqlCommand("select * from caburga.trabajadores where nombreCompleto= '" & lstTrabajadores.SelectedItem & "'", MyConnection)
        Dim MyReader As MySqlDataReader
        MyReader = MyCommand.ExecuteReader
        MyReader.Read()
        txtRUT.Text = MyReader.GetInt32("rut")
        txtDV.Text = MyReader.GetInt32("dv") <<THIS IS WHERE I GET THE ERROR.>>
        txtNombreTrabajador.Text = MyReader.GetString("nombreTrabajador")
        txtApellido1Trabajador.Text = MyReader.GetString("apellidoPaterno")
        txtApellido2Trabajador.Text = MyReader.GetString("apellidoMaterno")
        MyReader.Close()
        MyReader.Dispose()
        MyConnection.Close()
    Catch ex As MySqlException
        MsgBox("Error " & Environment.NewLine & ex.Message & Environment.NewLine & "Contáctese con el administrador del sistema.")
    Finally
        MyConnection.Dispose()
    End Try

任何人,请指出我的错误。如果您需要查看更多我的代码,我将很乐意更新此问题。

我感谢任何帮助。

更新:我在ServerConnection()上打开了与MySQL的连接,这是模块上的一个函数。

Function ServerConnection()
    Try
        MyConnection.ConnectionString = "server=myip;user=root;password=password;database=caburga"
        MyConnection.Open()
        Return True
    Catch ex As Exception
        Return False
    End Try
End Function

0 个答案:

没有答案