German Christian Democrats win by-election in Dresden