Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di Dust_79
    Registrato dal
    Mar 2001
    Messaggi
    696

    controllare la fine di un DReader

    ho la mia form di login.
    ho caricato su un data reader i valori della tabella del database dove ci stanno password e userid.
    e fino a qua tutto ok.
    per ricercare l'esistenza o meno dell'account giusto ho inserito il codice:
    private void entra_Click(object sender, System.EventArgs e)
    {
    OleDbDataReader myReader = Command.ExecuteReader();
    myReader.Read();
    while ((userid.Text != myReader.GetString(3))||(password.Text != myReader.GetString(4))){
    myReader.Read();
    }

    nome.Text=myReader.GetString(1);

    myReader.Close();
    oleDbConnection1.Close();
    }

    quindi sulla casella di testo 'nome' mi compare il nome di chi ha fatto login.
    il problema è:
    1) l'operatore || non è OR??? no perchè a me funziona come un AND...
    2) se inserisco uno uid o pwd sbagliati mi arriva alla fine del reader e mi dà errore... quindi come faccio ad inserire un controllo per evitare questo??? Ho provato con il metodo IsDBNull ma mi sa che non c'entra niente perchè non funziona...

    p.s.Syd non mi dire che ho beccato l'unico buon motivo per usare un data set...
    PAZZIA PAZZIA
    PORTAMI VIA!

  2. #2
    Utente di HTML.it L'avatar di Dust_79
    Registrato dal
    Mar 2001
    Messaggi
    696
    fa niente ho risolto con:

    while (myReader.Read()){
    if((userid.Text == myReader.GetString(3))&(password.Text == myReader.GetString(4)))
    nome.Text=myReader.GetString(1);
    }


    dite che funzica? per adesso si...
    solo che sarebbe stato meglio che alla fine del while fossi sul record di chi ha effettuato login... così continua il while fino alla fine...
    PAZZIA PAZZIA
    PORTAMI VIA!

  3. #3
    Utente di HTML.it L'avatar di Dust_79
    Registrato dal
    Mar 2001
    Messaggi
    696

    EUREKA!

    private void entra_Click(object sender, System.EventArgs e)
    { int esiste=0;
    OleDbDataReader myReader = Command.ExecuteReader();

    while (myReader.Read()){
    if((userid.Text == myReader.GetString(3))&&(password.Text == myReader.GetString(4)))
    {esiste=1;
    break;
    }
    }
    if(esiste==1)
    {
    nome.Text=myReader.GetString(1);
    }
    else
    {
    nome.Text="Password o username errati";
    }
    myReader.Close();
    oleDbConnection1.Close();
    }

    se c'è un modo piu' facile e ovvio ma che al momento casualmente mi sfugge ditemelo!!! :sexpulp:
    PAZZIA PAZZIA
    PORTAMI VIA!

  4. #4
    Utente di HTML.it L'avatar di Cyb JA
    Registrato dal
    Nov 2001
    Messaggi
    64
    ad ogni modo l'operatore || è uno XOR cioè un or esclusivo...
    ... indovinelli nell'oscurità ...

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.