Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: [vb.net] ado.net

  1. #1
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002

    [vb.net] ado.net

    vorrei sapere come implementare i vecchi comandi rs.movenext eccc del vecchio ado di vb6 su ado.net,ho visto che si puo eseguire un ciclo con l'each su tutti i record ma se io voglio spostarmi avanti di uno e poi ritonare indietro di uno senza sapere a che riga mi trovo attualmente ???

  2. #2
    puoi usare le funzioni di binding della fonte dati con i controlli winform offerte dalla classe bindingmanagerbase es.
    myBindingManagerBase.Position += 1
    Saluti a tutti
    Riccardo

  3. #3
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    quindi tu dici collegare i controlli con la fonte dati tramite il binding ???

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Puoi gestire tabelle di dati in due modalità: connessa oppure disconnessa.

    La modalità connessa prevede il mantenimento di un collegamento aperto con il database per la lettura di dati attraverso un DataReader che dipende dalla piattaforma selezionata (OleDbDataReader, OdbcDataReader, ecc.). Tale oggetto può essere generato attraverso un OdbcCommand, OleDbCommand e così via, usando il metodo ExecuteReader. Il DataReader può essere navigato usando il metodo Read. Per ulteriori informazioni, leggi la documentazione del .NET Framework SDK di Microsoft.

    La modalità disconnessa prevede invece che si utilizzi un DataAdapter e un DataSet per scaricare i dati richiesti da un comando all'interno del DataSet, quindi in memoria, utilizzando il DataAdapter come tramite attraverso il metodo Fill e chiudendo infine la connessione alla base dati. Modificati i dati, il DataAdapter consente inoltre di eseguire sul server gli statement SQL necessari per riportare gli aggiornamenti effettuati sul database.

    Tutte queste classi le trovi nella documentazione, ove esistono anche esempi in diversi linguaggi che vale la pena di analizzare per comprendere a fondo il loro funzionamento, sebbene il libro in tuo possesso dovrebbe essere esaustivo a riguardo.

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

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

  5. #5
    Originariamente inviato da cassano
    quindi tu dici collegare i controlli con la fonte dati tramite il binding ???
    Questo collegamento avviene automaticamente. Se vuoi ottenere il risultato che hai chiesto devi scrivere qualcosa di simile a quello che ti ho postato in precedenza. Se poi vuoi avere diverse fonti dati gestite in maniera indipendente l'una dall'altra puoi gestire piu' oggetti bindingmanager/currencymanager ecc. Un argomento cmq da approfondire xche' nello sviluppo winform/db e' centrale.

    Per Alka: il datareader non e' indicato per quello che e' stato chiesto qui in quanto e' forward only cioe' puo' essere letto dall'inizio alla fine e non puo' essere navigato fermandosi tornando indietro ecc.
    Saluti a tutti
    Riccardo

  6. #6
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    il datareader non e' indicato per quello che e' stato chiesto qui in quanto e' forward only
    perfetto questo è vero
    si nel libro c'è scritto ,pero a differenza del recordset di ado ho notato che nn esiste un comando esplicito per andare avanti e indietro di un record (vedi rs.movenext\previous)


    balena usa un esempio fatto con query sql, quindi deduco anche dalle vostre risposte che l'unica soluzione sia quella


    grazie delle risposte

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da riccardone
    Per Alka: il datareader non e' indicato per quello che e' stato chiesto qui in quanto e' forward only cioe' puo' essere letto dall'inizio alla fine e non puo' essere navigato fermandosi tornando indietro ecc.
    Hai pienamente ragione. L'ho riportato solamente per fare una carrellata delle classi a disposizione per navigare una sorgente dati tramite codice (però non ho specificato quest'ultima clausola).

    Tuttavia, usando un XXXDataAdapter e un DataSet, è possibile ottenere esattamente ciò che chiede cassano, anzi non è nemmeno necessario "andare avanti e indietro" ma è sufficiente indirizzare direttamente la riga e la colonna desiderate.

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

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

  8. #8
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    se io conoscessi la riga lo potrei fare ,cosi allora dovrei scrivere codice per ottenere un riferimento alla riga corrente e poi incrementarla di 1 o -1 a seconda se voglio andare avanti o indietro

  9. #9
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480
    Originariamente inviato da cassano
    se io conoscessi la riga lo potrei fare ,cosi allora dovrei scrivere codice per ottenere un riferimento alla riga corrente e poi incrementarla di 1 o -1 a seconda se voglio andare avanti o indietro
    In generale, credo sia corretto utilizzare le nuove classi disponibili spostando la propria ottica ed evolvendola rispetto a quanto si faceva con strumenti più datati come i Recordset e altri ammenicoli simili.

    Per risolvere il tuo problema, credo sarebbe meglio che tu definissi esattamente quello che intendi fare; in base a questo, sarà possibile indicarti qual è lo strumento più adatto ad ottenere il tuo scopo.

    Secondo me, se continuiamo a fornire dettagli su uno strumento (classe o componente che sia) che vuoi utilizzare sebbene, comprendendo il tuo problema, sarebbe meglio usarne un altro, allora non si arriva ad una soluzione utile.

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

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

  10. #10
    Originariamente inviato da cassano
    a differenza del recordset di ado ho notato che nn esiste un comando esplicito per andare avanti e indietro di un record
    ...balena usa un esempio fatto con query sql, quindi deduco anche dalle vostre risposte che l'unica soluzione sia quella
    No, non e' quella la soluzione di cui ho parlato io e non e' quindi l'unica. Anzi, la tecnica prospettata nel libro di F.Balena a cui mi sembra ti stai riferendo non credo proprio sia orientata ad andare avanti e indietro di 1 record ma semmai a gestire la paginazione dei dati (tutto e' possibile quindi correggimi se sbaglio). Ci mancherebbe se proprio in un ambiente disconnesso come .net fossimo costretti a interrogare il db solo per spostarci avanti e indietro sui records.
    Ti ripeto che la migliore soluzione e' quella di approfondire l'uso delle funzioni offerte dalla classe bindingmanagerbase e derivati. Con una riga di codice vai avanti indietro all'ultimo record al primo o dove vuoi tu.
    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.