Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    c# o cmq .net

    Un saluto fresco fresco iscritto.anche perchè sono stato lontano parecchio dal mondo della programmazione(facevo web quando erano in voga i frames)
    ho un problema che mi trascino da molto tempo

    Mi connetto ad un database access Con ODBC oppure oledb (funziona tutto)
    codice:
    oc = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\mio.mdb';Persist Security Info=False");
                    c = new OleDbCommand(q, oc);
                    oc.Open(); //apre la connessione
                    
                    reader = c.ExecuteReader(); //esegue la query
                    if (reader.Read()){"LEGGI"}
    e se invece volessi leggere il record precedente ?
    avendo inserito dei tasti avanti e indietro

    per tornare indietro non ho alcuna idea

  2. #2
    Utente di HTML.it L'avatar di cassano
    Registrato dal
    Aug 2004
    Messaggi
    3,002
    Col datareader non puoi, perchè è possibile utilizzare il DataReader di ADO.NET per recuperare un flusso di dati di sola lettura forward-only da un database.

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Originariamente inviato da mishima72
    c# o cmq .net
    Usa titoli più significativi in futuro, come richiesto dal Regolamento: qui l'ho corretto io per dare l'esempio.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  4. #4
    mi scuso per il titolo,in futuro starò più attento

    per cassano: questo lo avevo capito;

    la mia domanda è

    esiste un altro oggetto,classe,metodo,(un rito wodoo)per fare avanti e indietro nel database senza salvare il risultato delle query in un Array/lista

    da alcune ricerche c'è un oggetto Crecordset nelle MFC che ha moveNext e movePrev ma non ho idea di come utilizzarlo.

    Grazie per le risposte

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Nessun rito wodoo ... semplicemente dovresti studiare ADO.NET e in particolare gli oggetti correlati.

    Quello che ti serve è il

    DataSet

    (ma anche altri).

    A titolo d'esempio, dai un'occhiata a

    http://www.homeandlearn.co.uk/net/nets12p6.html

    http://www.visual-basic.it/articoli/acAdoNet.htm

    e ovviamente alla documentazione ufficiale (MSDN) e a qualche libro ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    e se invece volessi leggere il record precedente ? avendo inserito dei tasti avanti e indietro
    questo mi dà da pensare. In effetti puoi usare il DataReader per andare avanti e indietro, nel senso che fai una paginazione con un solo record per pagina.
    La cosa non è impossibile ma neanche banale. In base al database usato scrivi la giusta istruzione sql. Oppure, se le query non sono molto complesse, puoi usare il DataTable che ti permette di fare quello che chiedi.

    Pietro

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da pietro09
    In effetti puoi usare il DataReader per andare avanti e indietro
    Con il DataReader, si può andare solo avanti: la sua unidirezionalità è la caratteristica peculiare dell'oggetto e delle sue performance.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da alka
    Con il DataReader, si può andare solo avanti: la sua unidirezionalità è la caratteristica peculiare dell'oggetto e delle sue performance.
    Questo è vero. Ma io intedevo: con il click di un pulsante, apro la connessione e mi leggo l'n-simo record. Ogni volta apro e chiudo la connessione andando a pescare il record che mi interessa.
    In una pagina web forse può andare, in una applicazione exe classica forse no.

    comunque, se ho sbagliato accetto le correzioni. Si risponde anche per imparare di più.
    Pietro

  9. #9

    dataset

    Si conoscevo il dataset (in java secoli fa)
    sto visionando i due link appena ho capito posto il codice
    grazie per l'interessamento a tutti

  10. #10

    risolto

    codice:
            OleDbConnection cnn = new OleDbConnection(connetionString);
            OleDbDataAdapter da = new OleDbDataAdapter(q, cnn);
            DataSet ds = new DataSet();
            da.Fill(ds,"Immobile");
            DataTable tabella = new DataTable("Immobile");
            tabella = ds.Tables["Immobile"];
            string count=tabella.Rows.Count.ToString();
            int numrig = Int32.Parse(count);
            int i =0;
            MessageBox.Show(tabella.Rows[i][2].ToString());
    ovviamente al posto del MessageBox va tutta una serie di attenzioni tipo
    codice:
    i++;if(i==count)i=0 //(ad ogni click in avanti)
    i--; if(i<0)i=numrig-1;//(ad ogni click indietro)
    ovviamente se qualcuno conosce un metodo migliore o "diversamente spartano" è il benvenuto.

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.