>Hai ragione Lorenzo
>eseguendo la query via vb con ADO, bisogna sostituire l'* con
>il %,
>non ci avevo pensato ...
La query
PARAMETERS [@SearchKey] Text ( 255 );
SELECT Authors.ID, (Trim([Firstname])+' '+Trim([Lastname])) AS Description
FROM Authors
WHERE (Trim([@SearchKey])<>"") And
(UCase(Trim([Firstname])) Like UCase(Trim([@SearchKey])) Or
UCase(Trim([Lastname])) Like UCase(Trim([@SearchKey])) Or
(UCase(Trim([Firstname]))+' '+UCase(Trim([Lastname]))) Like UCase(Trim([@SearchKey])) Or
(UCase(Trim([Lastname]))+' '+UCase(Trim([Firstname]))) Like UCase(Trim([@SearchKey])))
ORDER BY Trim([Firstname]), Trim([Lastname]);
La riscriverei come:
PARAMETERS [@SearchKey] Text ( 255 );
SELECT ID, Firstname + ' ' + Lastname AS Description
FROM Authors
WHERE Firstname LIKE @SearchKey
OR Lastname LIKE @SearchKey
ORDER BY Firstname, Lastname;
Avendo cura di utilizzare il % sia come prefisso che come suffisso alla tua chiave di ricerca nel caso voglia restituire anche le righe che soddisfano le sottostringhe nel nome e cognome.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org