Aiuto per funzione booleana

lunedì 10 settembre 2007 - 09.46

mikon Profilo | Newbie

Ciao,

vorrei realizzare una funzione booleana che mi
controlla se un ID e' presente in una colonna
di un DataBase, ma non ci riesco.


function Controlla (byval valore as integer ) as boolean

Dim StringaQuery As String = "SELECT ID FROM dbo.miaTabella WHERE ID=" & valore & ";"
Dim connessione As New SqlConnection(" .... ")
connessione.Open()
Dim comando As New SqlCommand(StringaQuery, connessione)
Dim reader As SqlDataReader = comando.ExecuteReader()
reader.Read()
if isnumeric(reader(0)) then
Controlla = true
else
controlla = false
end if
reader.Close()
connessione.Close()
return Controlla
End Function


Non funziona perche' se "valore" non e' un ID presente nel database,
quando faccio reader(0) mi da errore perche' provo a leggere
un dato che non esiste.

Mi potete aiutare ?
Grazie :)


P.S.
(uso VB 2005 express)

danielinux Profilo | Newbie

>Ciao,
>
>vorrei realizzare una funzione booleana che mi
>controlla se un ID e' presente in una colonna
>di un DataBase, ma non ci riesco.
>
>
>function Controlla (byval valore as integer ) as boolean
>
>Dim StringaQuery As String = "SELECT ID FROM dbo.miaTabella WHERE
>ID=" & valore & ";"
>Dim connessione As New SqlConnection(" .... ")
>connessione.Open()
>Dim comando As New SqlCommand(StringaQuery, connessione)
>Dim reader As SqlDataReader = comando.ExecuteReader()
>reader.Read()
>if isnumeric(reader(0)) then
>Controlla = true
>else
>controlla = false
>end if
>reader.Close()
>connessione.Close()
>return Controlla
>End Function
>
>
>Non funziona perche' se "valore" non e' un ID presente nel database,
>quando faccio reader(0) mi da errore perche' provo a leggere
>un dato che non esiste.
>
>Mi potete aiutare ?
>Grazie :)
>
>
>P.S.
>(uso VB 2005 express)
>

Invece di fare

reader.Read()
>if isnumeric(reader(0)) then
>Controlla = true
>else
>controlla = false
>end if

scrivi:

if reader.read() then
Controlla = true

else

Controlla = false
end if

Infatti, se la query restiruisce un risultato, vuol dire che è presente.

mikon Profilo | Newbie

Grazie mille
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