Mi da errore di sintassi nell'espressione INSERT INTO, a me pare sia tutto giusto, ma mi pare di aver capito che il problema è nella variabile 'nx', ma non capisco il perchè, difatti se la elimini tutto funziona correttamente!

              
Dim tx As String = CType(dl.Rows(x).FindControl("Giorni"), TextBox).Text, c As Integer = 0
                
Dim nx As String = CType(dl.Rows(x).FindControl("Note"), TextBox).Text

With dst.Tables("an").Rows(0)
                    
                   sql = "INSERT INTO IndennitàCOL " & _
                   "(IDNominativo,IDGrado,IDGruppo,IDMese,IDAnno,Giorni," & _
                   "Note,DataInvioLOCAL,Autorizza) " & _
                   "VALUES (" & .Item("IDAnagrafica") & "," & _
                        "" & .Item("IDGrado") & "," & _
                        "" & .Item("IDGruppo") & "," & _
                        "" & IDMese & "," & _
                        "" & Anno & "," & _
                        "" & tx & ",'" & _
                        "" & nx & "','" & _
                        "" & "111120082338" & "'," & _
                        "" & False & ")"
  
              End With

www.webrimini.com
Usa il debugger e verifica l'sql effettivamente generato.

Ciao
17 messaggi dal 20 giugno 2006
Quasi sicuramente hai un apostrofo di troppo... Se ad esempio il valore di nx è nx = "l'abbiamo fatto" questo deve diventare "l''abbiamo fatto" altrimenti non può funzionare insert
Al consiglio di Cradle aggiungo una considerazione: perché non usi i parametri?
La tua query potrebbe dare un errore per la presenza di un banalissimo apice digitato nella textbox o - peggio - potrebbe generare gravi danni al database (distruzione totale compresa!) se un utente malintenzionato iniettasse codice sql malevolo (tipo "'; DROP TABLE ...; --")
Guardati gli articoli dello speciale sulla sicurezza, in particolare questo: http://www.aspitalia.com/articoli/asp.net2/aspnet-security-2.aspx
HTH

Matteo Casati
GURU4.net
Ho inserito la funzione per l'apostrofo come qui sotto riportato, ma non ho risolto nulla, ho lanciato la stringa sql risultante con un msgbox e mi sembra perfetta.
Purtroppo non so usare i parametri, e per ora ho urgenza di finire questo progetto, poi sicuramente li studierò perchè li usavo con VB6 e erano utilisssimi. Ma secondo voi l'errore potrebbe essere nella dichiarazione:

Dim nx As String = CType(dl.Rows(x).FindControl("Note"), TextBox).Text



Dim tx As String = CType(dl.Rows(x).FindControl("Giorni"), TextBox).Text, c As Integer = 0

Dim nx As String = CType(dl.Rows(x).FindControl("Note"), TextBox).Text

sql = "INSERT INTO IndennitàCOL " & _
                        "(IDNominativo,IDGrado,IDGruppo,IDMese,IDAnno,Giorni," & _
                        "Note,DataInvioLOCAL,Autorizza) " & _
                        "VALUES (" & .Item("IDAnagrafica") & "," & _
                        "" & .Item("IDGrado") & "," & _
                        "" & .Item("IDGruppo") & "," & _
                        "" & IDMese & "," & _
                        "" & Anno & "," & _
                        "" & tx & ",'" & _
                        "" & fApici(nx) & "','" & _
                        "" & "111120082338" & "'," & _
                        "" & False & ")"


    Function fApici(ByVal stringa)
        fApici = replace(stringa, "'", "''")
    End Function

www.webrimini.com
massimo74rn ha scritto:
ho lanciato la stringa sql risultante con un msgbox e mi sembra perfetta.

Possiamo vederla? I tipi (stringhe, nuemrici, ecc.) sono rispettati tra istruzione e dichiarazione dei campi nel db?

Matteo Casati
GURU4.net
Ragazzi, volevo dirvi che dopo 2 giorni di rompicapo ho risolto il problema.
Penso che 'Note' sia una parola riservata del db access, infatti è stato sufficente scriverla tra parentesi quadre. Grazie mille a tutti.

www.webrimini.com

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.