cosi a prima vista sembra che il problema sia semplicemente il fatto che il datasource del detailsView dovrebbe essere il secondo e non il primo.

Se vuoi capire come trovare da te questi errori potresti andare un po' oltre e cercare di stringere il campo del problema. Ogni controllo in asp.net dalla pagina ai datasource hanno un ciclo vita che puo essere intercettato con gli eventi ad essi associati. Crea gli eventhandler per gli eventi Selected e Selecting dei datasource, metti un breakpoint nel corpo dei metodi e controlla lo stato dei parametri eventargs. Nel caso specifico scopriresti che il datasource2 non viene mai usato metre il primo viene usato due volte.