Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881

    selectparameters valorizzato da querystring

    'giorno a tutti
    Ho un problema con una datasource di un formview.
    La pagina asp.net riceve in querystring l'ID di un record di una tabella.
    Nel page_load prendo questo ID e lo imposto come selectParameter per la datasource di un formview, così
    SqlDataSource2.SelectParameters.Add("ID", Request("ID").ToString)

    Il risultato che ottengo però è un'eccezione
    System.Data.OleDb.OleDbException: Sintassi non corretta in prossimità della parola chiave 'as'.

    eppure la query provata su sqlManager col parametro messo manualmente funzia benissimo...
    Idee?
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  2. #2
    Quale è la query che viene realmente prodotta ed eseguita? Controlla la sua siantassi...

    Ricorda anche che a meno che non sia la selectparametrs ad occuparsene, bisogna stare attenti alla sql injection.
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  3. #3
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    vorrei poterti rispondere ma non so come fare per visualizzare la query effettivamente eseguita dalla pagina aspx (intendo col parametro valorizzato)... comunque è una stored procedure e provata su sql manager dandogli il valore mancante va tranquilla

    quanto all'injection, sono assolutamente ignorante in materia, però si tratta di una web application a cui si accede solo tramite login e pwd abbastanza riservate, quindi, a meno che i dipendenti dell'azienda non decidano di fare danni sul software con cui lavorano, spero di essere al sicuro!!!!
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  4. #4
    SqlDataSource.SelectCommand contiene la sql usata realmente per recuperare i dati.

    Quanto alla sql injection, sembra che il SqlDataSource si occupi lui di proteggerti, ma non ti fidare del fatto che le pagine si trovino in un'area protetta...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  5. #5
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    nell'sqldatasource è scritto così:
    SelectCommand='p_lavori_teste_sel' SelectCommandType="StoredProcedure"

    che corrisponde a questa query:

    codice:
    SELECT [tbl_lavori_teste].*,
    	 [tbl_pagamenti].descrizione as pagam_descr,
    	 [tbl_IVA].descrizione as iva_descr,
    	 [tbl_IVA].calcolo as iva_valore,
    	 [tbl_clienti].descrizione as cli_descr,  
    	 [tbl_clienti].via as cli_via,  
    	 [tbl_clienti].citta as cli_citta,  
    	 [tbl_clienti].provincia as cli_provincia,  
    	 [tbl_clienti].CAP as cli_CAP,  
    	 [tbl_clienti].paese as cli_paese,  
    	 [tbl_clienti].telefono as cli_telefono,  
    	 [tbl_clienti].fax as cli_fax,  
    	 [tbl_clienti].piva as cli_piva,  
    	 [tbl_clienti].codfisc as cli_codfisc,  
    	 [tbl_clienti].email as cli_email,  
         [tbl_clienti].affidabilita as cli_affid,
         [tClassi].classe as classe_descr,
         ([tbl_mezzi].matricola + ' - ' + [tbl_mezzi].descrizione) as nomemezzo,
         ([tbl_personale].matricola + ' - ' + [tbl_personale].cognome + ' ' + [tbl_personale].nome) as nomeautista
    	from [tbl_lavori_teste]
    	LEFT JOIN [tbl_pagamenti] ON [tbl_lavori_teste].codicePagamento = [tbl_pagamenti].codice 
    	LEFT JOIN [tbl_IVA] ON [tbl_lavori_teste].codiceIVA = [tbl_IVA].codice
    	LEFT JOIN [tbl_Clienti] ON [tbl_lavori_teste].IDcliente = [tbl_clienti].ID
    	LEFT JOIN [tClassi] ON [tbl_lavori_teste].IDclasse = [tClassi].IDClasse
    	LEFT JOIN [tbl_mezzi] ON [tbl_lavori_teste].ID_mezzo = [tbl_mezzi].ID
    	LEFT JOIN [tbl_personale] ON [tbl_lavori_teste].ID_autista = [tbl_personale].ID
    	WHERE [tbl_lavori_teste].[ID] = @ID
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

  6. #6
    Ok, ma quello che ci interessa è che subito dopo aver fatto

    SqlDataSource2.SelectParameters.Add("ID", Request("ID").ToString)

    tu vada a leggere la proprietà SelectCommand e veda che valore ha...

    Altrimenti, puoi guardare nei log del server sql...
    "Le uniche cose che sbagli sono quelle che non provi a fare."
    Atipica

  7. #7
    Utente di HTML.it L'avatar di supermac
    Registrato dal
    Jun 2001
    Messaggi
    1,881
    trovato l'errore
    non era in quella query (che infatti andava nell'sqlManager) ma nel codice della pagina in una query collegata che veniva lanciata a ruota di quella....
    grazie mille comunque!
    W la Ferari effetrenavenave!
    il computer è un somaro veloce! (neanche tanto ndr)

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.