Cuando trabaje con Crystal Reports y C# la conexion la manejaba desde la pagina y no desde el reporte, seria algo como esto:
1. Tengo un metodo que me retorna un DataSet, con los datos a mostrar en el reporte, este metodo es el que tiene la conexion a la base de datos.
2. Asociamos el Ds al Reporte
3. Asociamos el reporte al CrystalViewer
Basicamente esos tres pasos son los que hago para la conexion.
¿Porque realizas la conexion desde el reporte?
Saludos