Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    110

    Problema con INSERT su db Access

    Ciao a tutti,
    ho un problema con una connessione ad un database Access che non riesco a risolvere.

    Riesco a connettermi ad un database Access e fare tutte le SELECT che voglio, ma nel momento in cui provo a fare una INSERT, mi va in errore. Il codice è il seguente:

    ------------------
    OleDbCommand command = new OleDbCommand();
    OleDbConnection conn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + HttpContext.Current.Server.MapPath(dataSource));
    command.CommandText = "INSERT INTO UTENTI(username, password, email, liquidita) VALUES('" + user + "','" + pass + "','" + email + "',100000)";
    command.Connection = conn;
    conn.Open();
    command.ExecuteNonQuery();
    ------------------


    e l'errore che mi dà è il seguente:

    ------------------
    Errore: System.Data.OleDb.OleDbException: Errore di sintassi nell'istruzione INSERT INTO.
    at System.Data.OleDb.OleDbCommand.ExecuteCommandTextE rrorHandling(Int32 hr)
    at System.Data.OleDb.OleDbCommand.ExecuteCommandTextF orSingleResult(tagDBPARAMS dbParams, Object& executeResult)
    at System.Data.OleDb.OleDbCommand.ExecuteCommandText( Object& executeResult)
    at System.Data.OleDb.OleDbCommand.ExecuteCommand(Comm andBehavior behavior, Object& executeResult)
    at System.Data.OleDb.OleDbCommand.ExecuteReaderIntern al(CommandBehavior behavior, String method)
    at System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
    at TOTOBORSA.Class.GesDB.insert(String user, String pass, String email) in c:\inetpub\wwwroot\totoborsa\class\gesdb.cs:line 71
    ------------------

    dove la linea 71 è quella del comando command.ExecuteNonQuery().

    Non riescoa spiegarmi cosa possa essere. La query è corretta, ho provato ad eseguirla direttamente da Access e funziona perfettamente.

    Qualcuno ha un'idea di cosa possa essere? Grazie in aticipo ed un caloroso saluto a tutta la comunità.

  2. #2
    Controlla che i valori passati nelle variabili non contengano apici singoli altrimenti la stringa ti andrà in errore.


  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    110
    Non è questo il problema.

    Per fare un tentativo ho anche inserito dei valori fissi:


    INSERT INTO UTENTI(username, password, email, liquidita) VALUES('ciccio','ciccio','ciccio@libero.it',100000 )


    Ma niente, stesso errore!!!

    (i 4 campi sono di tipo: testo, testo, testo, intero lungo)

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    prova a racchiudere i campi con le parentesi quadre, es. [campo1], [campo2], ...
    Pietro

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    110
    Ciao Pietro09,
    complimenti, sei riuscito a risolvere il mio problema .
    Ho racchiuso i nomi dei campi tra parentesi quadre:


    "INSERT INTO UTENTI([username], [password], [email], [liquidita]) VALUES('" + user + "','" + pass + "','" + email + "',100000)"


    E tutto funziona perfettamente. Ho ancora poca esperienaza con ASP.NET.


    Mille grazie ed un saluto a tutti!


  6. #6
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    bè io di solito levati certi casi non uso le []..forse qualche campo riservato ?? con accenti ?? o altro ???

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da cassano
    bè io di solito levati certi casi non uso le []..forse qualche campo riservato ?? con accenti ?? o altro ???

    Io di solito uso sempre racchiudere i campi nelle parentesi quadre, con Access, perchè non conosco le parole riservate e di solito incappo sempre in quell'errore.

    Inoltre, tutte le istruzioni insert o update, ho imparato a scriverle e collaudarle un campo per volta, aggiungendo sempre un campo e collaudando.
    Altrimenti, una insert con 20 campi, se un campo è scritto male, non ho modo di scoprire quale, se non cancellando e riscrivendo

    Pietro

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    .net non c'entra.

    Il problema era il campo password, perchè password è una parola riservata di access.

    ciao ciao!

    Hey hey, my my Rock and roll can never die!

  9. #9
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    come pensavo e ti avevo detto...è successo anche a me....

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.