274 messaggi dal 23 aprile 2008
ciao a tutti
purtroppo riscontro questo errore caricando la pagina sul server remoto:
Syntax error (missing operator) in query expression 'data>= 7/4/2014 5'.

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: Syntax error (missing operator) in query expression 'data>= 7/4/2014 5'.

Source Error: 


Line 848:
Line 849:            Dim lettdati As OleDbDataReader
Line 850:            lettdati = DBcomm.ExecuteReader
Line 851:            Dim i As Integer = 0
Line 852:            While (lettdati.Read())

Source File: d:\inetpub\webs\specialassaultsquadit\index.aspx.vb    Line: 850

cosa che invece non mi fa in locale, la query incriminata dovrebbe essere questa
DBcomm.CommandText = "Select data,ora,titolo,descrizione,immagine,convocati,assenti,tdg FROM eventi WHERE data>=" + dtd + " ORDER BY data ASC"

            Dim lettdati As OleDbDataReader
            lettdati = DBcomm.ExecuteReader
sapreste aiutarmi?
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
è possibile che sul server la data venga formattata in un altro modo, e produca una query SQL non valida a livello sintattico.

Per evitare di questi problemi (e altri più seri come la Sql Injection), devi ricorrere ad un OleDbParameter.

DBcomm.CommandText = "Select data,ora,titolo,descrizione,immagine,convocati,assenti,tdg FROM eventi WHERE data>=? ORDER BY data ASC"
DBcomm.Parameters.Add("@p1", OleDbType.Date).Value = dtd
'oppure
'DBcomm.Parameters.AddWithValue("@p1", dtd)


Ogni qualvolta vuoi inserire un valore in una query o in un comando SQL, ricorda sempre di usare i parametri.
Assicurati soltanto che la tua variabile dtd sia di tipo DateTime. Se non lo è, devi prima convertirla con CDate(dtd).

ciao,
Moreno
Modificato da BrightSoul il 06 luglio 2014 13.22 -

Enjoy learning and just keep making
274 messaggi dal 23 aprile 2008
BrightSoul ha scritto:
ciao,
è possibile che sul server la data venga formattata in un altro modo, e produca una query SQL non valida a livello sintattico.

Per evitare di questi problemi (e altri più seri come la Sql Injection), devi ricorrere ad un OleDbParameter.

DBcomm.CommandText = "Select data,ora,titolo,descrizione,immagine,convocati,assenti,tdg FROM eventi WHERE data>=? ORDER BY data ASC"
DBcomm.Parameters.Add("@p1", OleDbType.Date).Value = dtd
'oppure
'DBcomm.Parameters.AddWithValue("@p1", dtd)


Ogni qualvolta vuoi inserire un valore in una query o in un comando SQL, ricorda sempre di usare i parametri.
Assicurati soltanto che la tua variabile dtd sia di tipo DateTime. Se non lo è, devi prima convertirla con CDate(dtd).

ciao,
Moreno
Modificato da BrightSoul il 06 luglio 2014 13.22 -

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.