Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente bannato
    Registrato dal
    Jun 2004
    Messaggi
    1,117

    DataReader in una classe esterna

    Ciao ho un metodo che riceve in ingresso una SP e ritorna un datareader

    public sqldatareader GetDataReader(string SP)

    ...

    sqldatareader objdr
    objdr = objcommand.executereader();
    return objdr


    Il mio problema è che quando cerco di utilizzarlo mi dice che il dr è chiuso

    drpagina = classe.GetDataReader(miaSP)
    miotextbox.text = drpagina["valori"].tostring();


    come faccio a gestire un creato in una classe esterna mantenendolo "aperto"? ho provato ad aggiungere un objdr.Read();

    sia nella classe che nella pagina che utilizza la classe ma non cambia nulla :-((

  2. #2
    Il datareader e' un oggetto legato alla connessione e al command che lo ha generato e quindi non e' molto corretto usarlo come valore di ritorno di una funzione che potrebbe essere benissimo sganciata appunto dalla connessione e dal command. Peraltro i valori contenuti all'interno di un datareader si leggono sempre e per forza dal primo all'ultimo e non si possono leggere invece come cerchi di fare tu.
    Per queste ragioni, sarebbe forse piu' opportuno usare come valore di ritorno di una funzione una datatable es.
    codice:
    public sqldatatable GetDataTable(string SP)
    .....
    
    dtpagina = classe.GetDataTable(miaSP)
    miotextbox.text = dtpagina.rows[0]["nomecolonna"].tostring();
    oppure al limite una stringa (se non un object)
    codice:
    public string GetValueAsString(string SP)
    // implementazione che usa la funzione executescalar 
    // del command e che poi ritorni una string
    
    valpagina = classe.GetValueAsString(miaSP)
    miotextbox.text = valpagina;
    Saluti a tutti
    Riccardo

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.