Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [VB2010 Windows Forms] Ancora INSERT INTO, proviamo con SQL!

    Ragazzi, chiedo scusa se per caso non posso aprire una nuova discussione e chiedo aiuto un'altra volta, sempre per questo INSERT INTO...

    Questa volta ho utilizzato delle stringhe SQL per inserire un nuovo record nel DB ma niente da fare... L'errore "Syntax error INSERT INTO statement" mi perseguita...

    Sono disperato, non so più cosa fare...

    Ecco la procedura per Inserire:

    codice:
    Public Sub aggiungi(ByVal strSql As String)
    Dim ra As Integer
    connection_DB.Open()
    command_DB.CommandType = CommandType.Text
    command_DB.CommandText = strSql
    ra = command_DB.ExecuteNonQuery()
    connection_DB.Close()
    End Sub
    La Query è

    codice:
    "INSERT INTO Prenotazione (CodiceFiscale,Cognome,Nome,CodiceConcerto,NBiglietti,Consegna,Password)
    VALUES ('GHGFNCeccetera','Ghigo','Francesco','3','5','false','h77fHo7gS3')"
    (Ovviamente nel codice non va a capo!)

    Che dovrei fare???

  2. #2
    L'errore accade perché alcuni valori specificati nel blocco VALUES non sono stati scritti correttamente. Per i testi va bene usare l'apice (') per delimitare le stringhe, per altri tipi di valore non dovrebbero essere usati. Con i numeri e i boolean per esempio non bisognerebbe usare l'apice, per le date dipende dal database. Ad ogni modo ti consiglio di saltare a piè pari il problema e inserire i valori nella query attraverso la collezione command.Parameters. In internet ci sono decine e decine di esempi, basta cercare...
    Chi non cerca trova.

  3. #3
    Il fattaccio è che ho già provato senza apici...

    La cosa che però mi rode è il fatto che su un'altra tabella con la stessa funzione aggiungi, il record viene creato senza alcun problema, mentre su questo fa casini!

    A me da abbastanza fastidio, non so voi che fareste... Per carità, leggerò qualcosa sui parametri e vedrò se riesco ad inserirli ma secondo me non ha senso alla base il fatto che vada bene per una tabella e non per l'altra, è quello che non capisco...

  4. #4
    Inoltre (non me n'ero accorto prima) il campo Password è anche una parola riservata del linguaggio SQL, di conseguenza dovresti scriverla tra parentesi quadrate:
    codice:
    "INSERT INTO Prenotazione (CodiceFiscale,Cognome,Nome,CodiceConcerto,NBiglietti,Consegna,[Password])
    VALUES ('GHGFNCeccetera','Ghigo','Francesco',3,5,false,'h77fHo7gS3')"
    Resta valido il discorso dei parametri, che ti risolve anche l'eventuale problema di possibili tentativi di hacking (sql injection).
    Chi non cerca trova.

  5. #5
    Tas, ti ringrazio infinitamente perché era proprio il problema di Password a bloccare tutto!!!!!!

    Perdona l'ignoranza, cercherò di evitare altri post così stupidi!!

    Grazie mille! (Poi mi leggerò guide sui parametri! )

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.