if we want to change database at run time, call the following function in just after initializecomponent() in constructor or in load method
private void ConfigureResultCrystalReports()
{
//crystalReportViewer1.SelectionFormula = selectFormula;
resultReport rpt = new resultReport();
rpt.RecordSelectionFormula = selectFormula;
//TextObject txt = (TextObject)rpt.ReportDefinition.ReportObjects["txtAtt"];
//txt.Text = attendanceReport;
ConnectionInfo connectionInfo = new ConnectionInfo();
connectionInfo.ServerName = Application.StartupPath + @”\..\..\protisruti.mdb”;
connectionInfo.UserID = “admin”;
connectionInfo.Password = “dudukhai”;
SetDBLogonForReport(connectionInfo, rpt);
crystalReportViewer1.ReportSource = rpt;
crystalReportViewer1.Zoom(1);
}
private void SetDBLogonForReport(ConnectionInfo connectionInfo, ReportDocument reportDocument)
{
Tables tables = reportDocument.Database.Tables;
foreach (CrystalDecisions.CrystalReports.Engine.Table table in tables)
{
TableLogOnInfo tableLogonInfo = table.LogOnInfo;
tableLogonInfo.ConnectionInfo = connectionInfo;
table.ApplyLogOnInfo(tableLogonInfo);
}
}