We are also getting the same error, then we will create a data set and pass the record to report (Where crystal report viewer is) . Its call Push report.
Here is the code
ReportDocument cryRpt = new ReportDocument();
TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
ConnectionInfo crConnectionInfo = new ConnectionInfo();
cryRpt.Load(System.Windows.Forms.Application.StartupPath + "\\PickListRpt.rpt");
crConnectionInfo.ServerName = lstrServerName;
crConnectionInfo.DatabaseName = lstrDatabaseName;
crConnectionInfo.UserID = lstrUserName;
crConnectionInfo.Password = lstPass;
string lstrQry =" Your Query ";
SqlConnection con = new SqlConnection(clsUserInterface.ConnectionString);
SqlDataAdapter dr = new SqlDataAdapter(lstrQry, con);
DataSet1 ds2 = new DataSet1();
dr.Fill(ds2.Tables["dtReport"]);
cryRpt.SetDataSource(ds2);
crystalReportViewer3.ReportSource = cryRpt;
crystalReportViewer3.Refresh();