Errore INSERT SQL

di Anonimizzato20133 il
16 risposte
Salve ragazzi, devo inserire dei valori nei primi sei campi della tabella del database con delle textbox e sto impazzendo perchè non riesco a trovare l' errore:
OleDbCommand ^ cmd = gcnew  OleDbCommand("INSERT INTO RICAMBI (COD,CODPRODUT,CODALTERN,DESC,LISTINO,PREZZO)" + " VALUES ('" + this->cod1->Text + "', '" + this->cod_prod->Text + "', '" + this->cod_altern->Text + "', '" + this->desc->Text + "', '" + this->listino->Text + "','" + this->prezzo1->Text + "')" + " ;", connection);
L'errore che mi dà a tempo di esecuzione, non compilazione è : "errore di sintassi nell istruzione insert into".
Nell allegato potete vedere la tabella del database.
Allegati:
20133_7b757cb9b1906f2de49c46dd0cd0bcdc.png
20133_7b757cb9b1906f2de49c46dd0cd0bcdc.png

16 Risposte

  • Sono tutti campi testo o ci sono campi numerici? Nei campi numerici non va il ' '
  • Prima di ogni altra cosa: non si scrivono più query in quel modo, si usano i parametri del command.
    Ci sono esempi a pacchi sul web, cerca e ne trovi fin che vuoi.
  • I campi del database sono tutti testo, li ho creati così per non avere problemi
  • rogerino88 ha scritto:


    I campi del database sono tutti testo, li ho creati così per non avere problemi
    Allora di problemi ne avrai di ben più seri (ed irrisolvibili).

    Non ti se mai chiesto perché i TIPI di campi sono di diversa natura?
  • Guarda io credevo che mettendo campo testo (stringa) si accettava tutto entro un tot di caratteri
  • Poi non sono problemi irrisolvibili, basta cambiare il tipo di campo al database access
  • Evidentemente hai tanto da studiare sui DB e non è possibile rimediare in un thread.

    Volendo affrontare lo specifico problema che proponi, direi che sarebbe utile visualizzare la stringa completa della INSERT prima che venga eseguita. Per farlo, utilizza una stringa per inserire tutta la INSERT e visualizzala.

    Molto probabilmente in uno dei valori (magari in qualche descrizione, c'è un carattere ' (apice) che ovviamente fa sballare la sintassi. Con il suggerimento di Gibra dei parametri, eviteresti questo problema a monte.
  • rogerino88 ha scritto:


    Guarda io credevo che mettendo campo testo (stringa) si accettava tutto entro un tot di caratteri
    Non hai risposto alla mia domanda.
  • rogerino88 ha scritto:


    poi non sono problemi irrisolvibili, basta cambiare il tipo di campo al database access
    Quindi che aspetti a farlo?
    Questo va fatto PRIMA di inserire record, NON dopo.
  • Ragazzi, ripassate un po la teoria. I campi del database access sono stati importati da un file excel e non sono tutti testo, però alcuni campi tipo desc mi creano problemi nell inserimento.
    Ora la query l ho eseguita togliendo il campo desc e tutto funziona.
    Mica può essere che il campo sia danneggiato? come si può scoprirlo?

    Daniele
  • rogerino88 ha scritto:


    Ragazzi, ripassate un po la teoria.
    A questo punto, mi viene da chiederti se ci sei o ci fai.
    alcuni campi tipo desc mi creano problemi nell inserimento.
    Dato che ti ho scritto la questione dell'apostrofo (apice) e non hai risposto coerentemente, deduco che si sei.
  • Ahahahha
  • rogerino88 ha scritto:


    Ragazzi, ripassate un po la teoria. I campi del database access sono stati importati da un file excel e non sono tutti testo, però alcuni campi tipo desc mi creano problemi nell inserimento.
    Ah ah ha.....
    Insomma, non sai nemmeno come importare i dati. Bravo!
    E dici a noi di ripassare la teoria?
    Forse è il caso che sia TU a studiartela, la teoria, perché nemmeno quella conosci!
    OK, lasciamo perdere, non ne vale proprio la pena di sprecare il tempo con te.
  • Ti ricordo che all esame di basi di dati all università ho preso un bel voto.
    AL prossimo argomento.
Devi accedere o registrarti per scrivere nel forum
16 risposte