Eu gero todos os meus relatórios pelo report viewer, faço da seguinte forma :
1 - Crio um Dataset.
2 - Dentro desse dataset crio um tableadapter onde coloco minha consulta ao banco.
3 - Crio o relatório na página.
4 - Associo a esse relatório um dataset que aponta exatamente para o tableadapter.
5 - Arrasto os campos para a tablix.
6 - No meu codebehind executo novamente a consulta no banco e gero o relatório em PDF e exibo ao usuário.
Junior