A ver yo trabajo Reportes con BD SQL SERVER y lo hago de la siguiente manera....
Creo una vista en la BD y luego la vinculo al reporte asi...
En el Load de la página donde tienes el objeto CrystalReport
conexion="aqui va la conexion";
SqlConnection conn= new SqlConnection(conexion);
//La variable Conexion es la cadena de conexión a tu BD SQL SERVER
//luego preparas el sql
string sql="SELECT * FROM TABLA";
//Creo Los DataAdapter y los Dataset
SqlDataAdapter daEstCdto;
DataSet dsEstCdto;
daEstCdto= new SqlDataAdapter(sql,conn);
dsEstCdto= new DataSet();
daEstCdto.Fill(dsEstCdto,"tabla");
//Declaracion de reporte
oRpt= new Reportes.rpt_vt_EstCdto();
oRpt.Database.Tables["vs_vt_EstCdto"].SetDataSource(dsEstCdto.Tables["tabla"]);
//vs_vt_EstCdto es el nombre de la vista en mi BD
this.rptEstadoCdto.ReportSource = oRpt;
this.rptEstadoCdto.RefreshReport();
Y listo se muestra el reporte
Espero te haya ayudado
Saludos