1.245 messaggi dal 03 marzo 2004
Dunque ho questa stringa SQL:
string SQL = "SELECT * FROM [Art] WHERE ID_Categoria=" + cate + " AND Descrizione LIKE '" + descri + "'";


Che messa in output con un response.write mi fa vedere questo:
SELECT * FROM [Art] WHERE ID_Categoria=46 AND Descrizione LIKE 'elevatori'


il problema è quando invece di metterla in output la faccio eseguire che mi da questo errore:

Server Error in '/ppp/areariservata' Application.
--------------------------------------------------------------------------------

Istruzione SQL non valida. Prevista 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' o 'UPDATE'. 
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: Istruzione SQL non valida. Prevista 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' o 'UPDATE'.

Source Error: 


Line 129:      OleDbDataAdapter DA = new OleDbDataAdapter(comm);
Line 130:      DataTable MyTable = new DataTable();
Line 131:      DA.Fill(MyTable);
Line 132:      conn.Close(); 
Line 133:      return MyTable;
 

Source File: c:\inetpub\wwwroot\ppp\areariservata\Access.cs    Line: 131 

L'infinito è... ASP.NET
2.198 messaggi dal 30 novembre 2001
dov'è la definizine del command?
1.245 messaggi dal 03 marzo 2004
E io che credevo che dopo 3 pagine di post mi sognassi pure la notte (negli incubi intendo) e invece mi rispondi ancora

Dunque, ho ommesso di dire che ho una pagina (articoli.aspx) con questa funzione che servirebbe a caricare i dati su un dg(DataStati):

public void CollegaGriglia()
    {
      string cate = Request.QueryString["cat"];
      string descri = Request.QueryString["des"];
      string SQL = "SELECT * FROM [Art] WHERE ID_Categoria=" + cate + " AND Descrizione LIKE '" + descri + "'";
      // Collego i dati al datagrid che si chiama datastati
      DataStati.DataSource = Access.visRecord4(SQL);
      DataStati.DataBind();
    }


La funzione visRecord4 della classe Access.cs è questa:
//    GLI PASSO LA STRINGA SQL E FUNZIONA PER UNA SELECT
    public static DataTable visRecord4 (string SQL)
    {
      //creo l'oggetto connection e gli passo la stringa di connessione
      OleDbConnection conn = new OleDbConnection(connString);
      //faccio l'Open della connessione
      conn.Open();
      OleDbCommand comm = new OleDbCommand("SQL" ,conn);
      OleDbDataAdapter DA = new OleDbDataAdapter(comm);
      DataTable MyTable = new DataTable();
      DA.Fill(MyTable);
      conn.Close(); 
      return MyTable;
    }

(La stringa di connessione non l'ho riportata ma l'ho già testata e funziona)

L'infinito è... ASP.NET
32 messaggi dal 20 dicembre 2001
www.dinuzzo.it
Sonika ha scritto:
OleDbCommand("SQL" ,conn);

l'errore dovrebbe essere in questa riga che per funzionare corrttamente dovrebbe invece essere
OleDbCommand(SQL ,conn);

Ciao
Riccardo
2.198 messaggi dal 30 novembre 2001
per ora riesco ancora a dormire tranquillamente... bè almeno dopo 3 pagine di post abbiamo risolto il problema, stavolta credo che ce la caviamo con meno:
OleDbCommand comm = new OleDbCommand("SQL" ,conn);
questa la devi cambiare con:
OleDbCommand comm = new OleDbCommand(SQL ,conn);
perchè come l'avevi scritta tu gli passi non il contenuto della variabile ma il nome della stessa.

ciao
1.245 messaggi dal 03 marzo 2004
Avete ragione, mega stupidata :)
Problema risolto... adesso mi metto a sviscerare gli altri 200 problemini che ho notato! Tnx :)

L'infinito è... ASP.NET

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.