Visual Basic.NET - Mostrar todos los registros de la busqueda en un Listview

 
Vista:
sin imagen de perfil

Mostrar todos los registros de la busqueda en un Listview

Publicado por Manuel (1 intervención) el 04/03/2016 20:05:42
Buena Tarde a todos!!
Soy nuevo en el tema de la programación y me encuentro con un problema, espero me puedan ayudar!!
Diseñe un formulario en vb.net con un textbox, un btnconsulta y un listview, que estan conectados a una bd sql,
mi problema es el siguiente: Cuando le doy en el btnconsulta solo me muestra un registro, pero quiero ver todos los registros que coincidan con esa busqueda, como puedo solucionarlo?

Parte del Codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
Try
	dataread = cmd.ExecuteReader
	If dataread.HasRows Then
		dataread.Read()
		txtId.Text = dataread(0).ToString
		txtNombre.Text = dataread(1).ToString
		txtApellidos.Text = dataread(2).ToString
		dtpFecha.Text = dataread(3).ToString
		For i = 0 To ltvbuscarnombre.Items.Count - 1
 
			If (ltvbuscarnombre.Items(i).SubItems(0).Text = txtNombre.Text) Then
				contador += 1
			End If
		Next
		If ltvbuscarnombre.Items.Count = 0 Then
			lista.SubItems.Add(txtId.Text)
			lista.SubItems.Add(txtApellidos.Text)
			lista.SubItems.Add(dtpFecha.Text)
			ltvbuscarnombre.Items.Add(lista)
		Else
			With ltvbuscarnombre
				llena = .FindItemWithText(txtNombre.Text, True, 0, True)
				If Not llena Is Nothing Then
					MsgBox("EL Nombre ya esta en la lista " & txtNombre.Text)
					ltvbuscarnombre.Items.Clear()
				Else
					lista.SubItems.Add(txtId.Text)
					lista.SubItems.Add(txtNombre.Text)
					lista.SubItems.Add(txtApellidos.Text)
					lista.SubItems.Add(dtpFecha.Text)
					ltvbuscarnombre.Items.Add(lista)
					lista = Nothing
				End If
			End With
		End If
	Else
		MsgBox("No se encutra el Nombre a buscar", MsgBoxStyle.Critical, "Aviso")
		txtId.Text = ""
		txtNombre.Text = ""
		txtApellidos.Text = ""
		dtpFecha.Text = ""
		txtNombre.Select()
		txtNombre.Text = ""
		ltvbuscarnombre.Items.Clear()
	End If
	dataread.Close()
Catch ex As Exception
	MsgBox(ex.ToString)
End Try

Les agradeceria su apoyo.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Wilfredo Patricio Castillo
Val: 1.239
Bronce
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

Mostrar todos los registros de la busqueda en un Listview

Publicado por Wilfredo Patricio Castillo (720 intervenciones) el 06/03/2016 12:24:39
Solo debes agregar un while para que lea todo lo que hay, ya que de la manera en que lo estás haciendo solo te leerá 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Try
	dataread = cmd.ExecuteReader
	If dataread.HasRows Then
             While dataread.Read
		txtId.Text = dataread(0).ToString
		txtNombre.Text = dataread(1).ToString
		txtApellidos.Text = dataread(2).ToString
		dtpFecha.Text = dataread(3).ToString
		For i = 0 To ltvbuscarnombre.Items.Count - 1
 
			If (ltvbuscarnombre.Items(i).SubItems(0).Text = txtNombre.Text) Then
				contador += 1
			End If
		Next
		If ltvbuscarnombre.Items.Count = 0 Then
			lista.SubItems.Add(txtId.Text)
			lista.SubItems.Add(txtApellidos.Text)
			lista.SubItems.Add(dtpFecha.Text)
			ltvbuscarnombre.Items.Add(lista)
		Else
			With ltvbuscarnombre
				llena = .FindItemWithText(txtNombre.Text, True, 0, True)
				If Not llena Is Nothing Then
					MsgBox("EL Nombre ya esta en la lista " & txtNombre.Text)
					ltvbuscarnombre.Items.Clear()
				Else
					lista.SubItems.Add(txtId.Text)
					lista.SubItems.Add(txtNombre.Text)
					lista.SubItems.Add(txtApellidos.Text)
					lista.SubItems.Add(dtpFecha.Text)
					ltvbuscarnombre.Items.Add(lista)
					lista = Nothing
				End If
			End With
		End If
           End While
	Else
		MsgBox("No se encutra el Nombre a buscar", MsgBoxStyle.Critical, "Aviso")
		txtId.Text = ""
		txtNombre.Text = ""
		txtApellidos.Text = ""
		dtpFecha.Text = ""
		txtNombre.Select()
		txtNombre.Text = ""
		ltvbuscarnombre.Items.Clear()
	End If
	dataread.Close()
Catch ex As Exception
	MsgBox(ex.ToString)
End Try
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar