Buscar dentro de una base de datos

Iniciado por andaluz, 24 Febrero 2012, 18:09 PM

0 Miembros y 1 Visitante están viendo este tema.

andaluz

hola tengo un pequeño problemilla el cual al recorren una base de datos que ya tengo creada solo me accede al primer registro.

les pongo el codigo haber si encuentran algo mal y me pueden ayudar.

Código (vbnet) [Seleccionar]

Private Sub btn_Buscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Buscar.Click
        Dim nombre, dni As String
        Dim edad As Integer

        For i = 0 To UsuTableAdapter.GetData.Rows.Count - 1
            nombre = UsuTableAdapter.GetData.Rows(i).Item(0)
            dni = UsuTableAdapter.GetData.Rows(i).Item(1)
            edad = UsuTableAdapter.GetData.Rows(i).Item(2)
            If dni <> txt_DNI_Buscar.Text Then
                fila = i
                MessageBox.Show("DNI encontrado: " & UsuTableAdapter.GetData.Rows(i).Item(1), "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information)
                lbl_DNI_Encontrado.ForeColor = Color.Green

                lbl_Nombre.Text = nombre
                lbl_DNI.Text = dni
                lbl_Nombre.Text = edad
                Exit Sub
            Else
                fila = i
                MessageBox.Show("ERROR")
                'Exit Sub
            End If
        Next
    End Sub


saludos

andaluz


andaluz

me gustaria saber porque si le introduzco un dni correcto me devuelve la misma información que si le introduzco un dni incorrecto???

espero que me puedan ayudar!!!!

saludos

Novlucker

Cita de: andaluz en 24 Febrero 2012, 18:09 PM
Código (vbnet,9) [Seleccionar]
Private Sub btn_Buscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_Buscar.Click
        Dim nombre, dni As String
        Dim edad As Integer

        For i = 0 To UsuTableAdapter.GetData.Rows.Count - 1
            nombre = UsuTableAdapter.GetData.Rows(i).Item(0)
            dni = UsuTableAdapter.GetData.Rows(i).Item(1)
            edad = UsuTableAdapter.GetData.Rows(i).Item(2)
            If dni <> txt_DNI_Buscar.Text Then
                fila = i
                MessageBox.Show("DNI encontrado: " & UsuTableAdapter.GetData.Rows(i).Item(1), "Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information)
                lbl_DNI_Encontrado.ForeColor = Color.Green

                lbl_Nombre.Text = nombre
                lbl_DNI.Text = dni
                lbl_Nombre.Text = edad
                Exit Sub
            Else
                fila = i
                MessageBox.Show("ERROR")
                'Exit Sub
            End If
        Next
    End Sub

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

andaluz

este codigo es el mismo que he publicado yo en primer lugar o tiene algun cambio??

Novlucker

#5
Te he marcado la línea incorrecta, aunque todo el else tampoco es necesario

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

andaluz

porque esta incorrecta esa linea???

Novlucker

Si estas buscando el DNI, por que la comparación es "distinto" (<>)?

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

andaluz

#8
eso me he dado cuenta, pero esque si le pongo igual = me salga al else y si le pongo dintinto <> me lo hace bien, es algo que no comprendo.

a que puede ser devido eso???

aunque ya he solucionado esa duda haciendo la busqueda de otra forma.

Saludos

Novlucker

Te salta el ELSE porque tiene que ir recorriendo las filas hasta llegar a la correcta, cuando la encuentre ya no saltará. De cualquier modo, TODO el ELSE es incorrecto, no debería de ir.

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein