Problemi con un UPDATE

di Anonimizzato27099 il
4 risposte
Ciao a tutti.
Ho un problema con una UPDATE.
La mia tabella è composta da una serie di campi tutti in formato testo con i seguenti nomi:
dipendente, mese, anno, 01-1, 01-2, 01-3, 02-1, 02-2, 02-3, 03-1, 03-2, 03-3, 04-1, 04-2, 04-3, 05-1, 05-2, 05-3, ecc.
Io vorrei aggiornare la tabella già popolata con i campi dipendente, mese, anno con una serie di array con il seguente codice:
            For bC = 0 To bDipe - 1
                For bB = 1 To bGGMese
                    sSQL = "UPDATE st_fogliopresenze SET "
                    sSQL = sSQL & Format(bB, "00") & "-1 = '" & Trim(sRiga1((bB - 1) + (bGGMese * bC))) & "',"
                    sSQL = sSQL & " " & Format(bB, "00") & "-2 = '" & Trim(sRiga2((bB - 1) + (bGGMese * bC))) & "',"
                    sSQL = sSQL & " " & Format(bB, "00") & "-3 = '" & Trim(sRiga3((bB - 1) + (bGGMese * bC))) & "',"
                    sSQL = sSQL & " " & bB & " = '" & Trim(sGG((bB - 1) + (bGGMese * bC))) & "'"
                    sSQL = sSQL & " WHERE (dipendente = '" & sDip((bB - 1) + (bGGMese * bC)) & "'"
                    sSQL = sSQL & " AND mese = '" & cmbDipe01.Text & "'"
                    sSQL = sSQL & " AND anno = '" & cmbDipe02.Text & "')"
                    dbCona.Open()
                    dbCom2.CommandType = CommandType.Text
                    dbCom2.CommandText = sSQL
                    dbCom2.ExecuteNonQuery()
                    dbCona.Close()
                Next
Quando lancio l'evento che fa partire il codice (questo ovviamente è la sola porzione dell'UPDATE) mi da "errore di sintassi nell'istruzione UPDATE".
Cosa sbaglio? Io ho studiato con attenzione l'istruzione ma non trovo nessun tipo di errore.
Ho anche fatto un copy della variabile sSQL prima di lanciare l'executeNonQuery e la variabile ha il seguente valore:
UPDATE st_fogliopresenze SET 01-1 = '4', 01-2 = '-', 01-3 = '-', 1 = '1' WHERE (dipendente = 'Pinco Pallino' AND mese = 'Ottobre' AND anno = '2019')

Aiuto.
Grazie a tutti

4 Risposte

  • 1 = '1'

    ?

    P.S. Perché non usi i Parameters?
  • I PARAMETERS in una UPDATE?
    Io li uso per la INSERT ma non sapevo si potessero usare con l'UPDATE?
    Dove trovo materiale per vedere?
    Grazie
  • oregon ha scritto:


    1 = '1'

    ?
    L'1 senza virgolette è il nome di un campo che, in questo caso, è valorizzato '1'. E' un caso!
  • Soluzione più facile del previsto (anche se mi ha fatto arrovellare una mattinata intera):
                For bC = 0 To bDipe - 1
                    For bB = 1 To bGGMese
                        sSQL = "UPDATE st_fogliopresenze SET "
                        sSQL = sSQL & "[" & Format(bB, "00") & "-1] = '" & Trim(sRiga1((bB - 1) + (bGGMese * bC))) & "', "
                        sSQL = sSQL & "[" & Format(bB, "00") & "-2] = '" & Trim(sRiga2((bB - 1) + (bGGMese * bC))) & "', "
                        sSQL = sSQL & "[" & Format(bB, "00") & "-3] = '" & Trim(sRiga3((bB - 1) + (bGGMese * bC))) & "', "
                        sSQL = sSQL & "[" & bB & "] = '" & Trim(sGG((bB - 1) + (bGGMese * bC))) & "'"
                        sSQL = sSQL & " WHERE (dipendente = '" & sDip((bB - 1) + (bGGMese * bC)) & "'"
                        sSQL = sSQL & " AND mese = '" & cmbDipe01.Text & "'"
                        sSQL = sSQL & " AND anno = '" & cmbDipe02.Text & "')"
                        My.Computer.Clipboard.SetText(sSQL)
                        dbCona.Open()
                        dbCom2.CommandType = CommandType.Text
                        dbCom2.CommandText = sSQL
                        dbCom2.ExecuteNonQuery()
                        dbCona.Close()
                    Next
                Next
    
    Aggiungendo le parentesi quadre ai campi tutto ha ripreso a funzionare

    Grazie e a presto
Devi accedere o registrarti per scrivere nel forum
4 risposte