Se il debug lo sai fare e sai "leggere" correttamente un datareader allora l'errore che avevi appena postato dovresti riuscire a risolvero facilmente.
Per il resto, il dataadapter al suo interno usa un datareader per riempire la datatable.
Volendo, puoi passare un datareader direttamente alla datatable usando la funzione tuadatatable.Load(tuodatareader) piuttosto che scomodare un dataadapter.