21 messaggi dal 03 ottobre 2009
Salve a tutti,
ho una pagina Asp.net con un sqldatasource che interroga una tabella di un DB Microsoft Sql in base ad un parametro:

SelectCommand="SELECT [id], [indirizzo] FROM [tabellaEsempio] WHERE ([indirizzo] LIKE '%' + @indirizzo + '%')"

e fin qui tutto ok, il problema nasce quando faccio la stessa cosa con MySql, premetto che ho riprodotto la tabella in Mysql, ho configurato Asp.net in modo da interfacciarmi al server di MySql, ho verificato facendo una normale query di select e tutto funziona.
L'unico problema è che non riesco a far funzionare la stessa query e cioè se scrivo:

SelectCommand="SELECT id, indirizzo FROM tabellaEsempio WHERE (indirizzo LIKE '%' + @indirizzo + '%')"

Ottengo un errore di sintassi:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '+ 'parametro' + '%')' at line 1

Probabilmente è un errore di sintassi, le ho provate tutte, levare i più, mettere i segni di percentuale in modo diverso etc. avete qualche suggerimento???


altre prove
se la scrivo così:

SelectCommand="SELECT id, indirizzo FROM tabellaEsempio WHERE (indirizzo LIKE '%testoDiProva%')"

e se elimino dal controllo Sqldatasource la dichiarazine del parametro:

<SelectParameters>
<asp:ControlParameter Name="indirizzo" ControlID="TextBoxIndirizzo" PropertyName="Text" />
</SelectParameters>


funziona regolarmente, il problema è che io devo fare la ricerca in base al parametro che viene valorizzato da un altro controllo (TextBoxIndirizzo)...

Andrea Restucci - Web Programmer
www.andrearestucci.name
Download and try my FREE custom controls !!!
In Mysql, se non ricordo male, invece di '@' devi usare '?':
MsSql: @indirizzo
MySql: ?indirizzo

Ciao

Andrea Zani
Undicesimo comandamento: NON utilizzare Explorer 6
60 messaggi dal 30 dicembre 2006
ciao,
non sono pratico di mysql, ma prova questo:
i caratteri '%' devono far parte del valore del parametro, non esterni ad esso. quindi:
SelectCommand="SELECT id, indirizzo FROM tabellaEsempio WHERE (indirizzo LIKE '%' + @indirizzo + '%')"
diventa
SelectCommand="SELECT id, indirizzo FROM tabellaEsempio WHERE (indirizzo LIKE @indirizzo)"
e il valore di @indirizzo="%via%rossi%"

a proposito, presta attenzione al trabocchetto dei valori contenenti apici('), p. es. L'Aquila.

saluti

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.
In primo piano

I più letti di oggi

Media
In evidenza
MISC