Ciao bella,
credo proprio di essermi dimenticato di dirti di utilizzare sempre il metodo .Read di SqlDataReader prima di recuperare valori.
Quindi il tuo codice si trasforma in questo modo.
codice:
Dim Reader As SqlDataReader = Command.ExecuteReader()
Dim strCampo1 As String = string.empty()
Dim strCampo2 As String = string.empty()
Dim strCampo3 As String = string.empty()
While Reader.Read()
strCampo1 = Reader.GetString(0)
strCampo2 = Reader.GetString(1)
strCampo3 = Reader.GetString(2)
End While
Reader.Close()
A questo punto la tua funzione colleziona i valori da te necessari.
Per ritornare i valori devi necessari devi creare una cosa di questo tipo
codice:
Public Function ChiaraRitornamiQUalcosa(ValoreRitorno as String) as string
Dim a as string = "a"
Dim b as string = "b"
Dim c as string = "c"
Select ValoreRitorno
Case a
return(a)
Case b
return(b)
Case c
return(c)
End Select
End Function
e poi chi da codice chiami la funzione così
codice:
Console.WriteLine(ChiaraRitornamiQUalcosa("b"))
Console.ReadLine()
in questo modo non fai altro che dire alla tua funzione di ritornarti il valore della variabile b. Quindi, riassumendo, il codice diventa
codice:
public module MyModule
sub Main
Console.WriteLine(ChiaraRitornamiQUalcosa("b"))
Console.ReadLine()
end sub
Private Function ChiaraRitornamiQUalcosa(ValoreRitorno as String) as string
' connessioni al database
' e tutto il resto
Dim Reader As SqlDataReader = Command.ExecuteReader()
Dim strCampo1 As String = string.empty()
Dim strCampo2 As String = string.empty()
Dim strCampo3 As String = string.empty()
While Reader.Read()
strCampo1 = Reader.GetString(0)
strCampo2 = Reader.GetString(1)
strCampo3 = Reader.GetString(2)
End While
Reader.Close()
Select ValoreRitorno
Case "strCampo1"
return(strCampo1)
Case "strCampo2"
return(strCampo2)
Case "strCampo3"
return(strCampo3)
End Select
End Function
end module
per ricevere il valore di strCampo1 non devi far altro che scrivere
codice:
ChiaraRitornamiQUalcosa("strCampo1")
Ciao