Imports System.Data.SqlClient

Class MainWindow
  Private ConexionConBD As SqlConnection = Nothing
  Private OrdenSql As SqlCommand
  Private Lector As SqlDataReader

  Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs)
    ' Crear la conexión
    Dim strConexion As String = "Data Source=.\sqlexpress;" &
      "Initial Catalog=bd_telefonos; Integrated Security=True"
    ConexionConBD = New SqlConnection(strConexion)
  End Sub

  Private Sub btMostrarDatos_Click(sender As System.Object, e As System.Windows.RoutedEventArgs)
    Using ConexionConBD
      ' Crear una consulta
      Dim Consulta As String = "SELECT nombre, telefono FROM telefonos"
      OrdenSql = New SqlCommand(Consulta, ConexionConBD)

      ' Abrir la conexión con la base de datos
      ConexionConBD.Open()
      ' ExecuteReader hace la consulta y devuelve un SqlDataReader
      Lector = OrdenSql.ExecuteReader()
      ' Llamar siempre a Read antes de acceder a los datos
      While Lector.Read()
        ' siguiente registro
        lsTfnos.Items.Add(Lector("nombre") + " " + Lector("telefono"))
      End While
      ' Llamar siempre a Close una vez finalizada la lectura
      Lector.Close()
    End Using
    btMostrarDatos.IsEnabled = False
  End Sub
End Class
