Problemi con un UPDATE

di il
4 risposte

Problemi con un UPDATE

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

  • Re: Problemi con un UPDATE

    1 = '1'

    ?

    P.S. Perché non usi i Parameters?
  • Re: Problemi con un UPDATE

    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
  • Re: Problemi con un UPDATE

    oregon ha scritto:


    1 = '1'

    ?
    L'1 senza virgolette è il nome di un campo che, in questo caso, è valorizzato '1'. E' un caso!
  • Re: Problemi con un UPDATE

    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