Problema con lettura record da un db di access

di Anonimizzato16645 il
14 risposte
Salve,
io sto riscontrando un problema, sto cercando di recuperare i file da un database di access con un ciclo while ma quando arrivo a leggere il primo dato mi dice che è NULL e va in errore.
premetto che tutti i campi del database sono pieni.

Dim Query_Select As New OleDbCommand("SELECT NOME, COGNOME, CLASSE, SESSO, NUMERO, INDIRIZZO FROM ARCHIVIO")
Dim read As OleDb.OleDbDataReader
Query_Select.Connection = CON
read = Query_Select.ExecuteReader()

Dim nome As String
Dim cognome As String
Dim classe As String
Dim sesso As String
Dim numero As String
Dim indirizzo As String

While read.Read()
            nome = reader("NOME")
            cognome = reader("COGNOME")
            classe = reader("CLASSE")
            sesso = reader("SESSO")
            numero = reader("NUMERO")
            indirizzo = reader("INDIRIZZO")

End While

Grazie per l'aiuto

14 Risposte

  • lele2006 ha scritto:


    Ciao,
    tempo fa su questo sito, abbiamo pubblicato un tutorial, qui https://www.iprogrammatori.it/articoli/microsoft-net-framework/art_net-la-gestione-del-database-microsoft-access-tramite-vbnet-e-c_1678.aspx trovi il secondo articolo in cui si evidenzia la select.
    Buona programmazione.
    Grazie per la risposta
    ho guardato al tutorial, ma non è proprio quello che cerco, avrei bisogno di un ciclo che inizia dal primo record del database fino all'ultimo perché devo elaborare tutti i dati per inserirli come voglio io in un pdf attraverso iTextSharp
  • Nell'articolo riporta che hai un dataTable, a questo punto cicli per ogni record, ed hai i dati che vuoi.
    Ma puoi prendere il codice anche come approccio per estrapolare i dati.
    Buona programmazione.
  • Però mi piacerebbe capire dove sbaglio nel mio codice, il perché mi esce il valore null.
  • E' aperta la connessione? (open())
    Hai utilizzato la proprietà HasValue o simile?
  • Si sono aperte ti metto anche il codice precedente
    
    Public PathDB As String = PercorsoApp & "\Dati\Database\" & NomeFile & ".mdb"
    Public CON As New OleDb.OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source =" & PathDB)
    
    CON.Open() 'All'inizio del ciclo While
    
    CON.Close() 'Alla fine del ciclo While
    
  • Se non risolvi allega un progetto di esempio zippato compreso il db
  • Apri read :
    read = Query_Select.ExecuteReader()

    e poi usi reader :
    Nome = reader("NOME")

    ... che è sto reader ?
  • Grazie di tutto per la disponibilità, alla fine ho capito il perchè, praticamente ho sbagliato a digitare.. ecco quello giusto
    
    While read.Read()
                nome = read("NOME")
                cognome = read("COGNOME")
                classe = read("CLASSE")
                sesso = read("SESSO")
                numero = read("NUMERO")
                indirizzo = read("INDIRIZZO")
    
    End While
  • Si me ne sono accorto proprio ora
    praticamente un codice precedente usava reader e io ho fatto copia e incolla senza correggere

    sspintux ha scritto:


    Apri read :
    read = Query_Select.ExecuteReader()

    e poi usi reader :
    Nome = reader("NOME")

    ... che è sto reader ?
  • lucas22f ha scritto:


    sto cercando di recuperare i file da un database di access con un ciclo while ma quando arrivo a leggere il primo dato mi dice che è NULL e va in errore.
    Qual è l'istruzione su cui ti viene riportato l'errore?
    E qual è di preciso l'errore?
  • Che praticamente appena arrivavo per leggere il primo dato ne db mi restituiva il valore null e di conseguenza andava in errore.
    non mi accorgevo dell'errore perchè il comando reader era il comando di un codice simile a questo ma mi andava a pescare in un'altra tabella di dati
  • lucas22f ha scritto:


    Che praticamente appena arrivavo per leggere il primo dato ne db mi restituiva il valore null e di conseguenza andava in errore.
    non mi accorgevo dell'errore perchè il comando reader era il comando di un codice simile a questo ma mi andava a pescare in un'altra tabella di dati
    Ma quindi il problema ora è risolto?
    Mi pare di capire di sì.
  • Sisi risolto tutto grazie
Devi accedere o registrarti per scrivere nel forum
14 risposte