Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    Probabile problema di sintassi

    OleDbCommand comm = new OleDbCommand("SELECT" + Campo + "FROM " + tableName ,conn);

    Vi sembra creata in modo corretto la select??? Campo e tableName sono 2 campi di testo che gli passo. In fase di compilazione non ho nessun errore, ma gli errori nascono quando cerco di visualizzare la pagina e mi da questo errore:

    Istruzione SQL non valida. Prevista 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' o 'UPDATE'.

    Segnalandomi come riga incriminata quella in cui gli chiedo di eseguire la query, quindi suppongo che no sia creata bene la stringa sopra....

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    Re: Probabile problema di sintassi

    Originariamente inviato da Sonikag
    OleDbCommand comm = new OleDbCommand("SELECT" + Campo + "FROM " + tableName ,conn);

    Vi sembra creata in modo corretto la select??? Campo e tableName sono 2 campi di testo che gli passo. In fase di compilazione non ho nessun errore, ma gli errori nascono quando cerco di visualizzare la pagina e mi da questo errore:

    Istruzione SQL non valida. Prevista 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' o 'UPDATE'.

    Segnalandomi come riga incriminata quella in cui gli chiedo di eseguire la query, quindi suppongo che no sia creata bene la stringa sopra....
    metti
    Dim sql$= "select ....
    e sostituisci
    OleDbCommand comm = new OleDbCommand("SELECT" + ....
    con
    OleDbCommand comm = new OleDbCommand(sql ....

    prima di questa istruzione metti:
    response.write(sql):response.end
    così puoi controllare l'istruzione sql

    se usi Access, i nomi di campo e di tabella forse è meglio rachiuderli in parentesi quadre
    Pietro

  3. #3
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Mi è bastato mettere le parentesi quadre. Grazie

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Sonikag
    Mi è bastato mettere le parentesi quadre. Grazie

    mi permetto di darti qualche consiglio frutto della mia esperienza.
    Le istruzioni sql possono essere assai complicate e basta un nulla per non farle funzionare. Perciò credo che convenga sempre fare come come ti ho detto, ossia, stampare l'sql a video e collaudarla con Access.
    Prova magari ad utilizzare per esempio
    dim sql$= String.Format("SELECT [{0}] FROM [{1}]", campo$, tabella$)
    Println(sql, "sql"): Response.End

    Pietro

  5. #5
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Errore simile....

    i campi sono così:
    codice:
     
    			Int32 Id;
    			string tableName="[stati]";
    //			qNewsID = Convert.ToInt32(Request.QueryString["NewsID"]); 
    			Id= Convert.ToInt32(Request.QueryString["Cod"]);
    			string CampoAgg=(Request.QueryString["stat"]);
    			Access.modRecord(tableName, Id, CampoAgg);
    La stringa è questa:
    codice:
    OleDbCommand comm = new OleDbCommand("UPDATE " + tableName + " SET stato="+ CampoAgg +"WHERE ID_Stato=" + Id ,conn);
    L'errore è questo:
    Errore di sintassi (operatore mancante) nell'espressione della query '-'.
    Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

    Exception Details: System.Data.OleDb.OleDbException: Errore di sintassi (operatore mancante) nell'espressione della query '-'.

    Source Error:


    Line 71: conn.Open();
    Line 72: OleDbCommand comm = new OleDbCommand("UPDATE " + tableName + " SET stato="+ CampoAgg +"WHERE ID_Stato=" + Id ,conn);
    Line 73: comm.ExecuteNonQuery();
    Line 74: conn.Close();
    Line 75: }


    Source File: c:\inetpub\wwwroot\xxx\areariservata\Access.cs Line: 73

    ---
    Ho una mezza idea, cioè che vuole traparentesi quadre anche CampoAgg, ma non mi convince...

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    prova cosi

    codice:
    OleDbCommand comm = new OleDbCommand("UPDATE " + tableName + " SET stato='"+ CampoAgg +"' WHERE ID_Stato=" + Id ,conn);
    mancavano 2 spazi e 2 apici

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 © 2026 vBulletin Solutions, Inc. All rights reserved.