Questo sito utilizza cookie tecnici e di terze parti. Continuando la navigazione sul nostro sito accetti l'uso dei cookie. Per saperne di più leggi l'informativa sui cookie.   


Query di update con inner join su 2 tabelle
Ultimo messaggio: 16 mag 2019 11:40 di sanzweb. 0 Risposte.
Stampa gradevole
Solo gli utenti registrati possono rispondere ad una discussione.
Avatar
sanzweb
Messaggi: 88
Iscritto dal: 12 ott 2015 17:40
Utente
Utente

16 mag 2019 11:40

Buongiorno a tutti del forum.

Volevo provare ad aggiornare 2 tabelle con la clausola inner Join nello scenario classico del tipo tabella prodotti e dettaglio prodotti.

il dettaglio prodotti lo ricavo da una datagridview che viene riempita dall'utente.

Nel caso di un update, non riesco a capire dove mettere l'executnonquery, nel codice che ho implementato (e quindi sapere se è possibile o devo utilizzare 2 query distinte) visto che devo ciclare dentro alla datagrid view per salvare il dettaglio prodotti

Se non ci sono dettagli prodotto (può essere un caso) dovrebbe saltare il for each e fare solo l'aggiornamento della tabella prodotti.

le tabelle sono: prodotti e dettagli_prodotti

grazie a chi può illuminarmi.

CODICE:

\cb0 \highlight0 updqueryProd = "update tedakdb.prodotti INNER JOIN tedakdb.dettagli_prodotti ON prodotti.idprodotti = dettagli_prodotti.idprodotti SET prodotti.codbar = @codbar,"
            updqueryProd = updqueryProd & 
"prodotti.Descrizione=@desc, prodotti.fotopath=@fotopath, prodotti.prezzo=@prezzo, prodotti.categoria=@categoria, prodotti.sottocategoria=@sottocat, prodotti.qta=@qta,"
            updqueryProd = updqueryProd & 
"dettagli_prodotti.idprodotti=@iddettaglio, dettagli_prodotti.idarticolo=@idart, dettagli_prodotti.codbarart=@codbarart, dettagli_prodotti.qtausata=@qtausata WHERE prodotti.idprodotti = '" & idprodotto & "'"

            
Using myconn As New MySqlConnection(stringaConn)

                
Dim cmdmodprod As New MySqlCommand(updqueryProd, myconn)

                
With cmdmodprod.Parameters

                    .Add(
"@codbar"MySqlDbType.VarChar)
                    .Add(
"@desc"MySqlDbType.VarChar)
                    .Add(
"@fotopath"MySqlDbType.VarChar)
                    .Add(
"@prezzo"MySqlDbType.Decimal)
                    .Add(
"@categoria"MySqlDbType.VarChar)
                    .Add(
"@sottocat"MySqlDbType.VarChar)
                    .Add(
"@qta"MySqlDbType.Int16)

                    
'parametri dettaglio prodotti

                    .Add(
"@iddettaglio"MySqlDbType.Int16)
                    .Add(
"@idart"MySqlDbType.Int16)
                    .Add(
"@codbarart"MySqlDbType.VarChar)
                    .Add(
"@qtausata"MySqlDbType.Int16)

                
End With

                
Try

                    
With cmdmodprod
                       .Parameters(
"@codbar").Value = txtcodbar.Text
                       .Parameters(
"@desc").Value = txtdesc.Text
                       .Parameters(
"@fotopath").Value = nuovopathFoto
                       .Parameters(
"@prezzo").Value = prezzo
                       .Parameters(
"@categoria").Value = lblcategoria.Text
                       .Parameters(
"@sottocat").Value = lblsottocat.Text
                       .Parameters(
"@qta").Value = CInt(txtqta.Text)

             .ExecuteNonQuery() ??? (se messo qui non esegue agg. dettagli)

             
If dgdettaglioArt.RowCount > 0 Then

      
For Each row As DataGridViewRow In dgdettaglioArt.Rows

      .Parameters(
"@idprodotti").Value = idprodotto
     .Parameters(
"@idart").Value = row.Cells(1).Value
       .Parameters(
"@codbarart").Value = row.Cells(2).Value
       .Parameters(
"@qtausata").Value = row.Cells(7).Value

                            
Next
                        
Else


                        
End If


                    
End With

                
Catch ex As Exception

                
End Try


            
End Using

 

 

    Solo gli utenti registrati possono rispondere ad una discussione.