Visual Basic.NET - agregar datos de listview a BD

 
Vista:
sin imagen de perfil
Val: 28
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

agregar datos de listview a BD

Publicado por Carlos (13 intervenciones) el 05/06/2018 18:33:00
ListView
codigo-fuente
datos-guardados


Buenas tardes, ayuda con este codigo para guardar en BD, se cruzan los datos en la tabla
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder

agregar datos de listview a BD

Publicado por Cristian Saavedra (11 intervenciones) el 05/06/2018 22:04:48
Estimado,

Si te fijas cuando recorres la lista en el FOR le estas pasando siempre la misma posicion, por eso te esta guardando erroneamente los datos. Para obtener el dato que necesitas debiera ser algo asi:

1
ListViewapuesta.Items(x).SubItems(0).Text

El 0 en subitem corresponde a que va a obtener la columna Nro, el valor 1 obtendrá Animalito, el 2 obtendrá Loteria y asi sucesivamente.

Intenta cambiar eso y nos cuentas.

Saludos
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
sin imagen de perfil
Val: 28
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

agregar datos de listview a BD

Publicado por Carlos (13 intervenciones) el 05/06/2018 22:46:42
colega,

realice el cambio sugerido

1
2
3
4
LisViewapuesta.Items(x).SubItems(1).text
LisViewapuesta.Items(x).SubItems(2).text
LisViewapuesta.Items(x).SubItems(3).text
LisViewapuesta.Items(x).SubItems(4).text


solamente registra de manera exitosa el primer valor de los ListViewapuesta, los demás valores no los guarda
datos-guardados3
codigo-fuente3
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

agregar datos de listview a BD

Publicado por Cristian Saavedra (11 intervenciones) el 05/06/2018 23:53:11
Carlos,

Te recomiendo que coloques un punto de interrupción (Debug) y vallas viendo que datos le pasas a las variables que van a hacer el insert
1
ListViewapuesta.Items(x).SubItems(0).Text
Esta linea de código por como lo interpreto debiera ser así:

- ListViewapuesta es el contenedor de los datos.
- Items(x) obtienes la fila que se encuentra posicionada
- SubItems(0) corresponde a la posición de la fila recorrida en la cual la posición 0 corresponde al ID

por lo que veo ademas en el ultimo codigo que me pegaste y para entenderlo de mejor manera estas intentando insertar todos los registros que estan en el gridview???

Si es asi para recorrer cada uno de los datos yo haria algo así:

1
2
3
4
5
6
7
8
9
For i As Integer = 0 To (ListViewapuesta.Rows.Count() - 1)
 
    ConsultaSql = New OleDbCommand("todo lo demas que va aca ")
    ConsultaSql.Parameters.AddWithValue("@Serial", ListViewapuesta.Rows(i).Cells(0).Text)
    ConsultaSql.Parameters.AddWithValue("@Nro", ListViewapuesta.Rows(i).Cells(1).Text)
 
 
    'TODO LO QUE CONTINUA MAS ABAJO
Next

así seria. Intenta de nuevo y me cuentas como te fue
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
sin imagen de perfil
Val: 28
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

agregar datos de listview a BD

Publicado por Carlos (13 intervenciones) el 06/06/2018 00:12:36
lo intente y me dice que La propiedad rows no corresponde a los ListView
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

agregar datos de listview a BD

Publicado por Cristian Saavedra (11 intervenciones) el 06/06/2018 02:27:07
Carlos,

Solo te lo di como ejemplo lo del rows. en tu caso seria como lo tenias en la primera imagen cuando formulaste la pregunta algo asi:

1
2
3
4
5
6
7
8
For i = 1 To LisView1.ListItems.Count
 
    ConsultaSql = New OleDbCommand("todo lo demas que va aca ")
    ConsultaSql.Parameters.AddWithValue("@Serial", ListViewapuesta.ListItems(i).Text )
 
 
    'TODO LO QUE CONTINUA MAS ABAJO
Next

Prueba eso y me cuentas
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
sin imagen de perfil
Val: 28
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

agregar datos de listview a BD

Publicado por Carlos (13 intervenciones) el 06/06/2018 18:32:02
Cristiam, no tuve exito
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
sin imagen de perfil
Val: 28
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

agregar datos de listview a BD

Publicado por Carlos (13 intervenciones) el 06/06/2018 18:40:56
estoy probando con este codigo para detectar fallas

1
2
3
4
5
6
7
8
For i = 0 To ListViewapuesta.Items.Count - 1
 
    Dim items As New ListViewItem
 
    MsgBox(ListViewapuesta.Items(i).SubItems(i).Text)
Next
 
MsgBox("Ticket generado con exito", vbExclamation, "Exito")


me percato que muestra los valores de la siguiente forma:

(Items y Subitems de Listview)

Nro Animalito Loteria Sorteo Apuesta
02 perro Loto 10:00:00 5000
03 León Loto 12:00:00 6000
06 Jirafa Loto 12:00:00 4000

muestra los valores asi
02
leon
Loto

cuando necesito que tome los valores
Nro Animalito Loteria Sorteo Apuesta
02 Perro Loto 10:00 5000
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
sin imagen de perfil
Val: 28
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

agregar datos de listview a BD

Publicado por Carlos (13 intervenciones) el 06/06/2018 20:00:08
di con la solucion

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
' inicio
comando = New OleDbCommand("INSERT INTO Ticket(Serial, Fecha, Hora, Total)" & Chr(13) & "VALUES(TextBoxserial, Fecha, Hora, TextBoxtotal)", conexion)
comando.Parameters.AddWithValue("@Serial", TextBoxserial.Text)
comando.Parameters.AddWithValue("@Fecha", Fecha.Text)
comando.Parameters.AddWithValue("@Hora", Hora.Text)
comando.Parameters.AddWithValue("@Total", TextBoxtotal.Text)
comando.ExecuteNonQuery()
'fin
'inicio 
Dim items As New ListViewItem
For i = 0 To ListViewapuesta.Items.Count - 1
    consultaSql = New OleDbCommand("INSERT INTO Detalles(Serial, Nro, Animalito, Loteria, Sorteo, Apuesta)" & Chr(13) & "VALUES (Serial, Nro, Animalito, Loteria, Sorteo, Apuesta)", conexion)
    consultaSql.Parameters.AddWithValue("@serial", SerialTextBox.Text)
    consultaSql.Parameters.AddWithValue("@Nro", ListViewapuesta.Items(i).Text)
    consultaSql.Parameters.AddWithValue("@Animalito", ListViewapuesta.Items(i).SubItems(1).Text)
    consultaSql.Parameters.AddWithValue("@Loteria", ListViewapuesta.Items(i).SubItems(2).Text)
    consultaSql.Parameters.AddWithValue("@Sorteo", ListViewapuesta.Items(i).SubItems(3).Text)
    consultaSql.Parameters.AddWithValue("@Apuesta", ListViewapuesta.Items(i).SubItems(4).Text)
    consultaSql.ExecuteNonQuery()
Next
ListViewapuesta.Items.Clear()
conexion.Close()
MsgBox("Ticket generado con exito", vbExclamation, "Exito")
'fin
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 28
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

agregar datos de listview a BD

Publicado por Carlos (13 intervenciones) el 08/06/2018 21:10:42
Buenas tardes, otra consulta

tengo este codigo para verificar la apuesta y evitar valores repetidos en el listview

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Private Sub animalitoapueta_KeyPress(sender As Object, e As KeyPressEventArgs) Handles animalitoapueta.KeyPress
    If Asc(e.KeyChar) = 13 Then
        For h = 0 To ListViewapuesta.Items.Count -1
            Dim items As New ListViewItem
            If ListViewapuesta.Items(h).SubItems(h).Text = "Delfin" Then
                MsgBox("Seleccione uno diferente", vbCritical, "Animalito ya apostado")
                ListViewapuesta.Items(h).Remove()
 
                animalitoapueta.Text = ""
                Busquedanimalito.Text = ""
                Busquedanimalito.Focus()
            End If
        Next
    End If
End Sub


funciona bien mientras la fila h sea delfin, si luego inserto otro animal y luego el delfin repetido lo permite ingresar....

la idea es recorrer todo el listview y si consigue un valor repetido no dejar insertarlo nuevamente sin importar que fila se este creando
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
sin imagen de perfil
Val: 28
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

agregar datos de listview a BD

Publicado por Carlos (13 intervenciones) el 08/06/2018 23:48:05
di con la solución

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
If Asc(e.KeyChar) = 13 Then
    'inicio
 
    For h = 0 To ListViewapuesta.Items.Count - 1
        Dim items As New ListViewItem
 
        If ListViewapuesta.Items(h).SubItems(1).Text = animalitoapueta.Text And ListViewapuesta.Items(h).SubItems(2).Text _
            = ComboBoxloteria.SelectedValue And ListViewapuesta.Items(h).SubItems(3).Text = ComboBoxsorteogranja.SelectedValue Then
            MsgBox("Seleccione una hora diferente", vbCritical, "Animalito ya apostado")
            ComboBoxsorteogranja.SelectedValue = ""
            ComboBoxsorteogranja.Focus()
        End If
 
    Next
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar