Ciao a tutti,

alur è un'ora che mi sto smazzando con questo problema e non riesco a venirne a capo.

Questa è la select con il relativo controllo password il tutto contenuto in una funzione ben più lunga:

codice:
'Imposto i parametri per la select sul db
Dim sql = "SELECT * from amministra where username = '" & strUsername & "'"
Dim cmd As New MySqlCommand(sql, cn)
Dim rd As MySqlDataReader = cmd.ExecuteReader
rd.Read()

'Controllo se la password è corretta e imposto la variabile di ritorno
If strPassword = rd("pswd") Then
    intReturn = 1 'Password Corretta
Else
    intReturn = -1 'Password Incorretta
End If
Se inserisco username e password correte... oppure username corretta e password incorretta funziona da Dio.

Al contrario se sbaglio la username non c'è risultato e quindi mi restituisce errore.

Per ovviare a questo problema ho cercato di gestirlo l'errore e vi faccio degli esempi con cui ho provato:

codice:
If rd("pswd") Is Nothing Then
    intReturn = -1 'Password Incorretta
Else
    'Controllo se la password è corretta e imposto la variabile di ritorno  
    If strPassword = rd("pswd") Then
       intReturn = 1 'Password Corretta
    Else
       intReturn = -1 'Password Incorretta
    End If
End If
Ma mi restituisce questo errore:

Exception Details: MySql.Data.MySqlClient.MySqlException: Invalid attempt to access a field before calling Read()

Ho provato con IsNull ma ovviamente non esiste ho provato con IsDBNull ma non funzica... ho provato a verficare tipo if rd("pswd") <> "" ma ugualmente mi da lo stesso errore... conclusione non riesco a gestire l'errore di quando la select non trova niente...

Help Pls!