Io l'ho sempre usato e mi ha sempre funzionato...
L'unica differenza che vedo é nella definizione del tipo dato
sqlCmd.Parameters.Add(new SqlParameter("@Cognome", SqlDbType.Char));
[/code]Io avrei uso una cosa simile:
Se non sbaglio Char è "fisso".
Andrea
us01739 Profilo | Expert
641 messaggi | Data Invio: ven 22 dic 2006 - 11:34
Se non dico una asinata (.. etutto può essere ;-) ..), devi togliere il simbolo % in quanto con il like vengono messi in automatico
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------
amelix Profilo | Expert
694 messaggi | Data Invio: ven 22 dic 2006 - 11:41
Non credo... (l'ho appena provato)
Andrea
lbenaglia Profilo | Guru
5.625 messaggi | Data Invio: ven 22 dic 2006 - 12:00
>sqlCmd.Parameters["@Cognome"].Value = "'%'"+cognome+"'%'";
>
>Ho notato che in una mia query, il % è tra apici singoli...
Ciao Roberto,
gli apici singoli si utilizzano in T-SQL per delimitare dei literals stringa.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org
us01739 Profilo | Expert
641 messaggi | Data Invio: ven 22 dic 2006 - 12:08
Ciao Lorenzo,
avevo suggerito gli apici singoli perchè ho notato che in una query simile a quella del post ma generata automaticamente da VS2005 erano presenti... anche se come giustamente hai suggerito tu, non dovrebbero essere in quel punto
.. concordo che con il QA non funzionerebbe mai...
Grazie 1000 comunque per l'utile precisazione.
Bye Bye
---------------------------------------------------
Roberto Gelmini - Microsoft Certified Professional
www.robertogelmini.com
---------------------------------------------------
adima80 Profilo | Junior Member
158 messaggi | Data Invio: sab 23 dic 2006 - 12:15
Grazie a tutti, siete stati molto cortesi.
Provo subito. Da quello che ho capito il tipo char va un pò in contrasto con il LIKE, ho notato che nessuno di voi ha provato esempi di codice con quel tipo dato. Mi sbaglio?
Ciao e tanti auguri!
amelix Profilo | Expert
694 messaggi | Data Invio: sab 23 dic 2006 - 12:22
Il tipo char "non è conveniente" xchè occupa sempre lo spazio anche se li campo è vuoto e, se fai un IsNull("NomeCampo") non avrai il risultato sperato...
A.
Andrea
lbenaglia Profilo | Guru
5.625 messaggi | Data Invio: sab 23 dic 2006 - 12:35
>Il tipo char "non è conveniente" xchè occupa sempre lo spazio
>anche se li campo è vuoto
Vero, lo spazio allocato è indipendente dal numero di caratteri inseriti nella colonna|variabile:
USE tempdb;
DECLARE @myCharVar char(10);
SET @myCharVar = 'Lorenzo'
SELECT LEN(@myCharVar) AS Caratteri
, DATALENGTH(@myCharVar) AS BytesAllocati;
/* Output:
Caratteri BytesAllocati
----------- -------------
7 10
(1 row(s) affected)
*/
DECLARE @myVarcharVar varchar(10);
SET @myVarcharVar = 'Lorenzo'
SELECT LEN(@myVarcharVar) AS Caratteri
, DATALENGTH(@myVarcharVar) AS BytesAllocati;
/* Output:
Caratteri BytesAllocati
----------- -------------
7 7
(1 row(s) affected)
*/
>e, se fai un IsNull("NomeCampo") non
>avrai il risultato sperato...
Cioè? A me non risulta.
USE tempdb;
DECLARE @myCharVar char(15);
SET @myCharVar = NULL
SELECT ISNULL(@myCharVar, 'Valore NULL') AS Valore
/* Output:
Valore
---------------
Valore NULL
(1 row(s) affected)
*/
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org