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:
Se inserisco username e password correte... oppure username corretta e password incorretta funziona da Dio.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
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:
Ma mi restituisce questo errore: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
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!

Rispondi quotando