Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di shaone
    Registrato dal
    Apr 2003
    Messaggi
    212

    [Visual C#] DataSet o DataReader?

    Salve a tutti!
    sono nuovo dello sviluppo windows e provengo dallo sviluppo web.
    Il mio amletico dubbio è se usare un dataset o un datareader per popolare un listView.

    In pratica ho su di un form una ViewList dove visualizzare dei dati recuperati da diverse tabelle di un database in base alla selezione di alcune voci in una TreeView che mi fa da menu.
    in pratica una specie di esplora risorse di windows.

    Secondo voi (sicuro piu' esperti di me), mi conviene interrogare il database ad ogni selezione delle voci nel treeView oppure creare un dataset con tabelle disconnesse?

    Grazie!!!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Sei tu a dover decidere in base a ciò che vuoi ottenere: usare un DataSet ti consente senz'altro di poter mantenere in memoria un set di dati consultabili più rapidi rispetto ad un'impegnativa interrogazione al DB, soprattutto quando il cambio di selezione dal TreeView è rapido.

    Tuttavia, non avrai la certezza di avere dati aggiornati se si tratta di un database basato su un server SQL; per ottenere i valori aggiornati per i record, devi forzatamente scaricare tali record con il DataAdapter oppure adottare in pianta stabile un DataReader.

    In base a queste differenze, sei tu a dover stabilire la modalità preferita, oppure potresti valutarne una mista: navigazione con il TreeView su un DataSet che può essere aggiornato a comando dall'utente.

    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 shaone
    Registrato dal
    Apr 2003
    Messaggi
    212
    In effetti a me interessa recuperare dal database queste tabelle, modificarle in modo veloce in locale e poi eseguire una sincronizzazione sul server per aggiornare il database reale.

    Suppongo che sia possibile farlo, o sbaglio?
    Tra l'altro poi ho la certezza alla fine della corretta esecuzione degli aggiornamenti dopo la sincronizzazione?

    Comunque, il problema nasce dal fatto che ho notato che provando ad utilizzare un un datareader quando cambio le selezioni nella treeView e popolo il ListView, noto un certo tempo di elaborazione, che immagino con dataSet sarà meno percepibile... credo..

    Che ne pensi?

    Grazie!

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da shaone
    In effetti a me interessa recuperare dal database queste tabelle, modificarle in modo veloce in locale e poi eseguire una sincronizzazione sul server per aggiornare il database reale.
    Suppongo che sia possibile farlo, o sbaglio?
    Sembra un lavoro proprio su misura per il DataAdapter.

    Originariamente inviato da shaone
    Tra l'altro poi ho la certezza alla fine della corretta esecuzione degli aggiornamenti dopo la sincronizzazione?
    Se tutti i componenti per l'accesso ai dati sono debitamente configurati, la corretta esecuzione è garantita.

    Originariamente inviato da shaone
    Comunque, il problema nasce dal fatto che ho notato che provando ad utilizzare un un datareader quando cambio le selezioni nella treeView e popolo il ListView, noto un certo tempo di elaborazione, che immagino con dataSet sarà meno percepibile... credo..
    Che ne pensi?
    E' normale, anche per quanto riportato nel messaggio precedente.

    Il DataReader scarica ogni volta i dati, mentre il DataSet consente di mantenerne in memoria una "copia disconnessa"; lavorare in memoria è senz'altro meno oneroso e più rapido rispetto all'interrogazione del DB ad ogni necessità di reperire un insieme o un sottoinsieme dei dati.

    Non so con quale tipo di informazioni stai lavorando, tuttavia pare che per le tue necessità l'uso di DataSet con un DataAdapter sia più che sufficiente per poter 1) scaricare una versione aggiornata dei dati al principio, 2) navigare rapidamente tra i record in memoria tramite la TreeView, 3) inviare le modifiche apportate ai dati locali al server SQL per sincronizzarlo senza dover recuperare nuovamente i dati aggiornati.

    Se il tuo programma è usato da un solo utente, non c'è alcuna controindicazione; se, al contrario, c'è un accesso multiutente, devi valutare i possibili "conflitti" derivanti dall'avere una copia locale dei dati per ciascun utente.

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

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

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.