+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15

ciclo for each... update mi aggiorna solo il primo record

  1. #1
    rashid non  in linea Novello
    Buon pomeriggio!
    Perch in questo codice il comando INSERT funziona ma UPDATE mi aggiorna soltanto il primo record? Cosa sbaglio?

    codice HTML:
        Private Sub btnAggiornaDoc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAggiornaDoc.Click
            Dim dbcomm As OleDbCommand = dbconn.CreateCommand
            Dim dbcomm1 As OleDbCommand = dbconn.CreateCommand
            dbcomm.CommandType = CommandType.Text
            dbcomm1.CommandType = CommandType.Text
            dbconn.Open()
            dbcomm.CommandText = "INSERT INTO RighePreventivi (Numero, Data, Cliente, Condizioni, Metodo, Banca, Listino, NumRiga, Prodotto, Descrizione, Pz, Qt, Prezzo, Importo, BS, Peso, UM, Commento, IVA, Trasporto, Sconto, PesoTot, TotaleMerce, Imponibile22, Imponibile10, Imponibile5, Esente, IVA22, IVA10, IVA5, TotaleIVA, TotaleDocumento, Accettato, Scaduto) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"
            dbcomm1.CommandText = "UPDATE RighePreventivi SET Numero=@numero, Data=@data, Cliente=@cliente, Condizioni=@condizione, Metodo=@metodo, Banca=@banca, Listino=@listino, NumRiga=@numriga, Prodotto=@prodotto, Descrizione=@descrizione, Pz=@pz, Qt=@qta, Prezzo=@prezzo, Importo=@importo, BS=@bs, Peso=@peso, UM=@um, Commento=@commento, IVA=@iva, Trasporto=@trasporto, Sconto=@sconto, PesoTot=@pesotot, TotaleMerce=@totmerce, Imponibile22=@imp22, Imponibile10=@imp10, Imponibile5=@imp5, Esente=@esente, IVA22=@iva22, IVA10=@iva10, IVA5=@iva5, TotaleIVA=@ivatot, TotaleDocumento=@totale, Accettato=@accettato, Scaduto=@scaduto WHERE IDRiga=@idriga"
            For Each riga As DataGridViewRow In DGVPrev.Rows
                If IsNothing(riga.Cells(1).Value) Then
                Else
                    If riga.Cells(0).Value.ToString = "" Then
                        dbcomm.Parameters.AddWithValue("@numero", riga.Cells(1).Value)
                        dbcomm.Parameters.AddWithValue("@data", riga.Cells(2).Value)
                        dbcomm.Parameters.AddWithValue("@cliente", riga.Cells(3).Value)
                        dbcomm.Parameters.AddWithValue("@condizione", riga.Cells(4).Value)
                        dbcomm.Parameters.AddWithValue("@metodo", riga.Cells(5).Value)
                        dbcomm.Parameters.AddWithValue("@banca", riga.Cells(6).Value)
                        dbcomm.Parameters.AddWithValue("@listino", riga.Cells(7).Value)
                        dbcomm.Parameters.AddWithValue("@numriga", riga.Cells(8).Value)
                        dbcomm.Parameters.AddWithValue("@prodotto", riga.Cells(9).Value)
                        dbcomm.Parameters.AddWithValue("@descrizione", riga.Cells(10).Value)
                        dbcomm.Parameters.AddWithValue("@pz", riga.Cells(11).Value)
                        dbcomm.Parameters.AddWithValue("@qta", riga.Cells(12).Value)
                        dbcomm.Parameters.AddWithValue("@prezzo", riga.Cells(13).Value)
                        dbcomm.Parameters.AddWithValue("@importo", riga.Cells(14).Value)
                        dbcomm.Parameters.AddWithValue("@bs", riga.Cells(15).Value)
                        dbcomm.Parameters.AddWithValue("@peso", riga.Cells(16).Value)
                        dbcomm.Parameters.AddWithValue("@um", riga.Cells(17).Value)
                        dbcomm.Parameters.AddWithValue("@commento", riga.Cells(18).Value)
                        dbcomm.Parameters.AddWithValue("@iva", riga.Cells(19).Value)
                        dbcomm.Parameters.AddWithValue("@trasporto", txtTrasporto.Text)
                        dbcomm.Parameters.AddWithValue("@sconto", txtSconto.Text)
                        dbcomm.Parameters.AddWithValue("@pesotot", lblTotPeso.Text)
                        dbcomm.Parameters.AddWithValue("@totmerce", lblTotMerce.Text)
                        dbcomm.Parameters.AddWithValue("@imp22", lblImpon22.Text)
                        dbcomm.Parameters.AddWithValue("@imp10", lblImpon10.Text)
                        dbcomm.Parameters.AddWithValue("@imp5", lblImpon5.Text)
                        dbcomm.Parameters.AddWithValue("@esente", lblEsente.Text)
                        dbcomm.Parameters.AddWithValue("@iva22", lblIVA22.Text)
                        dbcomm.Parameters.AddWithValue("@iva10", lblIVA10.Text)
                        dbcomm.Parameters.AddWithValue("@iva5", lblIVA5.Text)
                        dbcomm.Parameters.AddWithValue("@ivatot", lblIVADoc.Text)
                        dbcomm.Parameters.AddWithValue("@totale", lblTotDoc.Text)
                        dbcomm.Parameters.AddWithValue("@accettato", chbAccettato.Checked)
                        dbcomm.Parameters.AddWithValue("@scaduto", chbScaduto.Checked)
                        dbcomm.ExecuteNonQuery()
                    Else
                        dbcomm1.Parameters.AddWithValue("@numero", riga.Cells(1).Value)
                        dbcomm1.Parameters.AddWithValue("@data", riga.Cells(2).Value)
                        dbcomm1.Parameters.AddWithValue("@cliente", riga.Cells(3).Value)
                        dbcomm1.Parameters.AddWithValue("@condizione", riga.Cells(4).Value)
                        dbcomm1.Parameters.AddWithValue("@metodo", riga.Cells(5).Value)
                        dbcomm1.Parameters.AddWithValue("@banca", riga.Cells(6).Value)
                        dbcomm1.Parameters.AddWithValue("@listino", riga.Cells(7).Value)
                        dbcomm1.Parameters.AddWithValue("@numriga", riga.Cells(8).Value)
                        dbcomm1.Parameters.AddWithValue("@prodotto", riga.Cells(9).Value)
                        dbcomm1.Parameters.AddWithValue("@descrizione", riga.Cells(10).Value)
                        dbcomm1.Parameters.AddWithValue("@pz", riga.Cells(11).Value.ToString)
                        dbcomm1.Parameters.AddWithValue("@qta", riga.Cells(12).Value.ToString)
                        dbcomm1.Parameters.AddWithValue("@prezzo", riga.Cells(13).Value.ToString)
                        dbcomm1.Parameters.AddWithValue("@importo", riga.Cells(14).Value.ToString)
                        dbcomm1.Parameters.AddWithValue("@bs", riga.Cells(15).Value.ToString)
                        dbcomm1.Parameters.AddWithValue("@peso", riga.Cells(16).Value.ToString)
                        dbcomm1.Parameters.AddWithValue("@um", riga.Cells(17).Value)
                        dbcomm1.Parameters.AddWithValue("@commento", riga.Cells(18).Value)
                        dbcomm1.Parameters.AddWithValue("@iva", riga.Cells(19).Value)
                        dbcomm1.Parameters.AddWithValue("@trasporto", txtTrasporto.Text)
                        dbcomm1.Parameters.AddWithValue("@sconto", txtSconto.Text)
                        dbcomm1.Parameters.AddWithValue("@pesotot", lblTotPeso.Text)
                        dbcomm1.Parameters.AddWithValue("@totmerce", lblTotMerce.Text)
                        dbcomm1.Parameters.AddWithValue("@imp22", lblImpon22.Text)
                        dbcomm1.Parameters.AddWithValue("@imp10", lblImpon10.Text)
                        dbcomm1.Parameters.AddWithValue("@imp5", lblImpon5.Text)
                        dbcomm1.Parameters.AddWithValue("@esente", lblEsente.Text)
                        dbcomm1.Parameters.AddWithValue("@iva22", lblIVA22.Text)
                        dbcomm1.Parameters.AddWithValue("@iva10", lblIVA10.Text)
                        dbcomm1.Parameters.AddWithValue("@iva5", lblIVA5.Text)
                        dbcomm1.Parameters.AddWithValue("@ivatot", lblIVADoc.Text)
                        dbcomm1.Parameters.AddWithValue("@totale", lblTotDoc.Text)
                        dbcomm1.Parameters.AddWithValue("@accettato", chbAccettato.Checked)
                        dbcomm1.Parameters.AddWithValue("@scaduto", chbScaduto.Checked)
                        dbcomm1.Parameters.AddWithValue("@idriga", riga.Cells(0).Value)
                        dbcomm1.ExecuteNonQuery()
                    End If
                End If
            Next
            dbconn.Close()
            Elenco_preventivi.Show()
            Me.Close()
        End Sub

  2. #2
    L'avatar di Brontolo
    Brontolo non  in linea Very Important Person
    Ricevi qualche errore o no?
    ℹ️ Leggi di pi su Brontolo ...

  3. #3
    rashid non  in linea Novello
    Ciao Brontolo! Sempre disponibile tu! Grazie.

    Allora, errori non ne ricevo solo che mi sono accorto che il comando UPDATE mi aggiorna il primo record tante volte quante ne prevede il ciclo. In pratica il comando aggiorna sempre lo stesso record ignorando gli altri.

  4. #4
    L'avatar di Brontolo
    Brontolo non  in linea Very Important Person
    Evidentemente riga.Cells(0) ha sempre lo stesso valore. E' visibile questa colonna? Se non lo rendila visibile, oppure controllala in debug.
    ℹ️ Leggi di pi su Brontolo ...

  5. #5
    L'avatar di gibra
    gibra non  in linea Very Important Person

  6. #6
    rashid non  in linea Novello
    Ho provato sia a renderla visibile sul DGV sia in debug. Il valore cambia come dovrebbe. Non capisco

  7. #7
    L'avatar di Brontolo
    Brontolo non  in linea Very Important Person
    Non saprei. Prova a semplificare usando meno campi per facilitare il debug...
    ℹ️ Leggi di pi su Brontolo ...

  8. #8
    L'avatar di gibra
    gibra non  in linea Very Important Person
    Quote Originariamente inviato da rashid Visualizza il messaggio
    Non capisco
    Non capisci COSA?
    A chi stai rispondendo???????
    ℹ️ Leggi di pi su gibra ...

  9. #9
    Avresti risolto in 5 minuti (e senza il forum) mettendo un paio di breakpoint e seguendo l'esecuzione del ciclo.

    (A parte il fatto che la "If IsNothing Then Else" non si pu vedere ...)
    ℹ️ Leggi di pi su AntonioG ...

  10. #10
    Svuota la lista dei parametri, con xxxx.Parameters.Clear(), prima del ciclo successivo.

    AddWithValue aggiunge un nuovo parametro in coda ogni volta che lo usi.
    ℹ️ Leggi di pi su Fix ...

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. WebRequest non funziona dopo il primo ciclo!
    Da Tom580933 nel forum Visual Basic .Net
    Risposte: 10
    Ultimo Post: 15-01-2018, 16:18
  2. Risposte: 8
    Ultimo Post: 19-02-2009, 17:09
  3. Impostare solo al primo avvio SpecialDirectories
    Da Frosty nel forum Visual Basic .Net
    Risposte: 6
    Ultimo Post: 22-10-2008, 21:51
  4. Risposte: 3
    Ultimo Post: 11-09-2008, 21:29
  5. Il data si aggiorna solo chiudendo e riaprendo db!!
    Da bud77 nel forum Microsoft Word
    Risposte: 4
    Ultimo Post: 16-05-2007, 23:34