ExecuteScalar

domenica 21 ottobre 2007 - 17.41

gae58 Profilo | Senior Member

salve, ho la necessità di sapere se la ricerca effettuata a trovato il movimento.
Nei vari thread ho letto che va fatto attraverso il metodo executeScalar.

Ho scritto questo codice:
SqlCommand Qry = new SqlCommand("SELECT COUNT(*) FROM Art80 WHERE Targa='" &txbTarga& "'", conn); conn.Open();
Int32 Count = Convert.ToInt32(Qry.ExecuteScalar().ToString());
ma mi ritorna l'errore:
Impossibile applicare l'operatore '&' a operandi di tipo 'string' e 'System.Web.UI.WebControls.TextBox'.

allora ho cambiato la stringa in quanto ho letto anche che è più sicuro usare i parametri:
SqlCommand Qry = new SqlCommand("SELECT COUNT(*) FROM Art80 WHERE Targa=@Targa", conn);
Qry.Parameters.Add("@Targa", SqlDbType.VarChar, 15).Value = txtTarga;

conn.Open();
Int32 Count = Convert.ToInt32(Qry.ExecuteScalar().ToString());
ma mi ritorna l'errore:
Dettagli eccezione: System.InvalidCastException: L'oggetto deve implementare IConvertible.

Ma la conversione non l'ho già fatta?

Gaetano

alx_81 Profilo | Guru

>salve, ho la necessità di sapere se la ricerca effettuata a trovato
>il movimento.
>Nei vari thread ho letto che va fatto attraverso il metodo executeScalar.
>
>Ho scritto questo codice:
>SqlCommand Qry = new SqlCommand("SELECT COUNT(*) FROM Art80 WHERE
>Targa='" &txbTarga& "'", conn); conn.Open();
>Int32 Count = Convert.ToInt32(Qry.ExecuteScalar().ToString());
>ma mi ritorna l'errore:
>Impossibile applicare l'operatore '&' a operandi di tipo 'string'
>e 'System.Web.UI.WebControls.TextBox'.
Questo è normale. Stai cercando di concatenare un TextBox con una stringa. Al massimo puoi utilizzare txbTarga.Text, ovvero la proprietà String Text dell'oggetto txbTarga.
>
>allora ho cambiato la stringa in quanto ho letto anche che è
>più sicuro usare i parametri:
>SqlCommand Qry = new SqlCommand("SELECT COUNT(*) FROM Art80 WHERE
>Targa=@Targa", conn);
>Qry.Parameters.Add("@Targa", SqlDbType.VarChar, 15).Value = txtTarga;
> conn.Open();
>Int32 Count = Convert.ToInt32(Qry.ExecuteScalar().ToString());
>ma mi ritorna l'errore:
>Dettagli eccezione: System.InvalidCastException: L'oggetto deve
>implementare IConvertible.
Sicuramente meglio utilizzare i parametri, sono decisamente più sicuri.
Ma non è che anche qui stai cercando di mettere il TextBox e non la proprietà Text?
prova con:
Qry.Parameters.Add("@Targa", SqlDbType.VarChar, 15).Value = txtTarga.Text;

Alx81 =)

http://blogs.dotnethell.it/suxstellino

gae58 Profilo | Senior Member

ti ringrazio, e pensare che già avevo perso parecchio tempo per la stessa situazione per un altro comando.

Molto spesso solo le sviste che fanno perdere parecchio tempo.

di nuovo tante grazie.


Gaetano

alx_81 Profilo | Guru

>ti ringrazio, e pensare che già avevo perso parecchio tempo per
>la stessa situazione per un altro comando.
>Molto spesso solo le sviste che fanno perdere parecchio tempo.
Già!!
>
>di nuovo tante grazie.
di nulla!
Alx81 =)

http://blogs.dotnethell.it/suxstellino
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5