Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    17

    Duplicazione di record (ADO.NET@ACCESS2000)

    Ho una query (tra l'altro molto semplice!) la lancio su Access e mi estrae un record proprio quello che volevo!
    Poi la do in pasto a un DataAdapter che invece mi duplica i record e me ne restituisce 2
    Qualcuno ha avuto esperienza di un problema come questo?

    PS Ho fatto rapide verifiche ed escluso che:
    la query venga eseguita 2 volte
    l'adapter non sia pulito

    GRAZIE
    <%MPERRO%>

  2. #2
    posta codice (solo la parte 'interessante' !) e query sql
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    17
    Purtroppo adesso non ho la possibilità di postare il codice.
    Volevo precisare comunque che:
    - la Query è molto semplice e eseguita su Access restituisce 1 solo record
    - La duplicazione avviene appena eseguita la query sul DataAdapter, che debuggato mi dice contenere 2 righe, quindi prima del Fill su DataSet.
    <%MPERRO%>

  4. #4
    quando fai fill dataset il dataset sei sicuro sia vuoto ? cioè appena creato ? dim pippo as new dataset.

    probabilmente il dataset non è vuoto , oppure lo "filli" 2 volte

    sicuro che la sub nella quale fai il fill è eseguita sono 1 volta ? (occhio con i page load e auto event wireup....)
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    17
    Sono sicuro, in quanto sono le prime cose che ho contollato, che:
    - Il Dataset è appena stato istanziato (AS NEW DATASET -> è nuovo di pacco !)
    - che non faccio il Fill 2 volte (ho prestato attenzione a tutti i RoundTrip del caso e compagnia bella)

    Ma insisto:
    i due record ci sono già nell'adapter!
    <%MPERRO%>

  6. #6
    :master:

    ma scusa
    se io faccio dim sql as string
    quSQL="SELECT cosa FROM cose WHERE ID=" & request.querystring("id") & ""

    ci ho messo un where perchè se ti deve restituire 1 record....

    e questa se la stampi a video e la fai eseguire nel tu db e ti restituisce 1 record solo, dopo non puoi più sbagliare(in teoria)

    dopo ci metti

    Dim adap As OleDbDataAdapter
    adap = New OleDbDataAdapter(quSQL, cnx)
    dst = New DataSet()
    adap.Fill(dst, "prodotti")

    cosa vuole dire poi
    La duplicazione avviene appena eseguita la query sul DataAdapter, che debuggato mi dice contenere 2 righe, quindi prima del Fill su DataSet
    non esiste prima del metodo fill; se non "filli" come fai a dire quante righe contiene il dataset ? all'adapter tu gli dai in pasto una stringa sql (assicurarsi che sia giusta) e la connessione
    POI "filli"
    Frate Priore: "È Lucifero in persona!"
    Trinità: "Lo conosci?"
    Bambino: "Mai sentito nominare, deve essere un professionista dell'est"

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    17
    Provo a spiegarmi...
    poniamo che la query sia effettivamente questa:
    sql="SELECT cosa FROM cose WHERE ID=" & request.querystring("id") & ""
    La provo su acce$$ e mi restitusce 1 record... BENE!
    Dichiaro e instanzio l'adapter:
    Dim adap As OleDbDataAdapter
    adap = New OleDbDataAdapter(sql, cnx)
    mi fermo qui e debuggo...
    watch sul dataadapter: rows = 2
    dst = New DataSet()
    proseguo... faccio il fill (ormai scoraggiato):
    adap.Fill(dst, "prodotti")
    ed effettivamente mi restituisce 2 record!
    <%MPERRO%>

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.