: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"