Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151

    [VB.NET 2005] Clonare oggetto DataReader

    Ciao a tutti, è possibile, in qualche modo, clonare il risultato di una query che restituiste un oggetto DataReader?
    In pratica io ho queste istruzioni:
    codice:
    Public Function GetTabellaComuni() As OleDb.OleDbDataReader
       Dim cmd As New OleDb.OleDbCommand("SELECT * FROM Comuni ORDER BY Comune;", cn)
       cn.Open()
       Return cmd.ExecuteReader(CommandBehavior.CloseConnection)
    End Function
    ....
    bsComuni.DataSource = GetTabellaComuni()
    bsComuni è un oggetto BindingSource.
    Con l'oggetto bsComuni procedo al popolamento di una ComboBox. Siccome, con gli stessi risultati, avrei bisogno di popolare altre due combo senza assegnarli lo stesso oggetto bsComuni, (in quanto se in una combo seleziono un comune, questa selezione non deve influire sulle altre combo), c'è un modo per clonare o prelevare il risultato dell'oggetto bsComuni in modo da assegnarlo ad un'altro oggetto?
    Grazie
    Jupy

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Un oggetto DataReader suppongo non sia clonabile, in quanto solo uno di essi potrebbe fare uso contemporaneamente della stessa connessione.

    Però, potresti usare invece il DataSet e clonare tabelle di dati (DataTable), questo senz'altro.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Ciao alka, si effettivamente ho visto che un Dataset è clonabile..ma, ahimè, è anche molto più lento (nel caricamento dati) di un DataReader..e quanto vado a caricare la tabella dei comuni..la differenza si vede a occhio nudo..
    Stavo valutando un'altra alternativa, invece di caricare tutti i comuni in una sola volta, filtrarli in base alla provincia.. però mi chiedevo se per l'utente finale fosse più "dispersivo", in quanto prima deve selezionare la provincia, poi il comune che gli interessa. Cosa ne pensi?
    Jupy

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da Jupy64
    Ciao alka, si effettivamente ho visto che un Dataset è clonabile..ma, ahimè, è anche molto più lento (nel caricamento dati) di un DataReader..e quanto vado a caricare la tabella dei comuni..la differenza si vede a occhio nudo..
    Tendenzialmente, è più lento, ma non così lento. Inoltre, va detto che i dati si possono riutilizzare, che il caso in esame, senza aprire un nuovo DataReader, sommando così due elaborazioni per evitarne di farne usa sola, ma efficace, e mantenere i dati memorizzati.

    Se la mole di dati non è eccessiva, io lavorerei con un DataSet scaricando i dati un'unica volta e creando DataView dalle DataTable create filtrando e ordinando così i dati in vari modi.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Originariamente inviato da alka
    Tendenzialmente, è più lento, ma non così lento. Inoltre, va detto che i dati si possono riutilizzare, che il caso in esame, senza aprire un nuovo DataReader, sommando così due elaborazioni per evitarne di farne usa sola, ma efficace, e mantenere i dati memorizzati.

    Se la mole di dati non è eccessiva, io lavorerei con un DataSet scaricando i dati un'unica volta e creando DataView dalle DataTable create filtrando e ordinando così i dati in vari modi.

    Ciao!
    Effettivamente, per quello che devo fare, non mi rimane scelta che passare a un DataSet, anche se i dati non sono pochi (tutti i comuni sono 8103 record..) per questo stavo valutando l'idea di usare un DataSet e caricare i comuni in base alla provincia selezionata, cosi il caricamento è più veloce e non si notano rallentamenti.. altrimenti, caricando tutti i comuni (8103), quando apro il form c'è un attimo di attesa... vedo, se riesco a "mascherare" questa attesa preferisco caricarli tutti all'inizio..

    Jupy

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.