Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Record Nullo

  1. #1
    Utente di HTML.it L'avatar di Lucada
    Registrato dal
    Apr 2005
    Messaggi
    176

    Record Nullo

    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!
    Il vero io è quello che tu sei, non quello che gli altri hanno detto di te. [Paulo Coelho]

  2. #2
    Utente di HTML.it L'avatar di edaje
    Registrato dal
    Jul 2003
    Messaggi
    363
    DEvi utilizzare la proprietà rd.HasRows

    codice:
    if(!rd.HasRows)
    {
       //Utente non esiste
    }

  3. #3
    Utente di HTML.it L'avatar di Lucada
    Registrato dal
    Apr 2005
    Messaggi
    176
    Urka che bello funziona... ci sono diventato pazzo e poi era una cavolata del genere.

    Un'ultima domanda per non ricadere in questi errori... leggo molti che dicano "studiati il framework"... ma emh... in che maniera?

    Tnx.
    Il vero io è quello che tu sei, non quello che gli altri hanno detto di te. [Paulo Coelho]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.