Hola de nuevo, estoy intentando mostrar en un textBox la media de valores de un campo de mi BD según sea el item seleccionado en un comboBox. Al intentar ejecutarlo me dice que ya está abierto ese DataReader cuando la realidad es que es la primera vez que lo hago. ¿Puede alguien echarme una mano?. Gracias.
Mi código es:
Código:
Private Sub mostrar_btn_Click(sender As System.Object, e As System.EventArgs) Handles mostrar_btn.Click

        'LLENAMOS EL LISTBOX DESDE LA Bd SEGÚN NECESITEMOS

        conector.Open()
        Dim mediaDistSql As String = "SELECT ROUND(AVG(distancia),2) FROM datos"
        Dim mediaCalSql As String = "SELECT ROUND(AVG(calorias),2) FROM datos"
        Dim mediaKmSql As String = "SELECT ROUND(AVG(kmh),2) FROM datos"
        Dim consultaSql As String = "SELECT * FROM datos ORDER BY salida_num"
        Dim comando As MySqlCommand = New MySqlCommand(consultaSql, conector)
        Dim comando1 As MySqlCommand = New MySqlCommand(mediaDistSql, conector)
        Dim comando2 As MySqlCommand = New MySqlCommand(mediaCalSql, conector)
        Dim comando3 As MySqlCommand = New MySqlCommand(mediaKmSql, conector)
        Dim lectura As MySqlDataReader
        'Dim lector1 As MySqlDataReader
        'Dim lector2 As MySqlDataReader
        'Dim lector3 As MySqlDataReader
        lectura = comando.ExecuteReader
        datos_lb.Items.Clear()
        While (lectura.Read)
            If dato_cbox.SelectedItem = "DISTANCIA" Then
                datos_lb.Items.Add(lectura("distancia"))
                valores_lbl.Text = dato_cbox.SelectedItem
            ElseIf dato_cbox.SelectedItem = "CALORIAS" Then
                datos_lb.Items.Add(lectura("calorias"))
                valores_lbl.Text = dato_cbox.SelectedItem
            Else
                datos_lb.Items.Add(lectura("kmh"))
                valores_lbl.Text = dato_cbox.SelectedItem
            End If
        End While
        'SOLUCIONAR EL ERROR CON EL LECTOR, DA ERROR DE QUE YA ESTÁ ABIERTO
        'If dato_cbox.SelectedItem = "DISTANCIA" Then

        '    lector1 = comando1.ExecuteReader
        '    lector1.Read()
        '    media_tb.Text = lector1(0)
        '    lector1.Close()
        'ElseIf dato_cbox.SelectedItem = "CALORIAS" Then

        '    lector2 = comando2.ExecuteReader
        '    lector2.Read()
        '    media_tb.Text = lector2(0)
        '    lector2.Close()
        'Else

        '    lector3 = comando3.ExecuteReader
        '    lector3.Read()
        '    media_tb.Text = lector3(0)
        '    lector3.Close()
        'End If
        conector.Close()
La parte del código con la comilla es porque no me funciona lo que he comentado antes.