Hello Ashutosh Singh
After modifying the code as you said, another error popup saying the connection was not close but when I check it closely all connection was close, and also can you help me with any form of validation if the user select a data range which doesn't exist it should alert the user of selecting wrong date range.
public DataTable LoadFirstTimersReportByDate() { DataTable dataTable = new DataTable(); int i = 0; dataGridView5.Rows.Clear(); cn.Open(); cm = new SqlCommand("Select * FROM tblFirstTimers WHERE FDate BETWEEN @StartDate AND @EndDate", cn); cm.Parameters.AddWithValue("@StartDate", FirstTimersDt1.Value.Date); cm.Parameters.AddWithValue("@EndDate", FirstTimersDt2.Value.Date); SqlDataAdapter da = new SqlDataAdapter(cm); da.Fill(dataTable); dr = cm.ExecuteReader(); while (dr.Read()) { i++; dataGridView5.Rows.Add(i, dr["id"].ToString(), dr["FDate"].ToString(), dr["FName"].ToString(), dr["LName"].ToString(), dr["FGender"].ToString(), dr["FDOB"].ToString(), dr["FLocation"].ToString(), dr["FPhoneNo"].ToString(), dr["FInvitedBy"].ToString(), dr["FPrayerRequest"].ToString()); } dr.Close(); cn.Close(); return dataTable; }
public void LoadFirstTimers() { ReportDataSource rptDataSource; this.reportViewer1.LocalReport.ReportPath = Application.StartupPath + @"\Reports\rptFirstTimers.rdlc"; this.reportViewer1.LocalReport.DataSources.Clear(); cn.Open(); DataTable filteredData =fmlist.LoadFirstTimersReportByDate(); rptDataSource = new ReportDataSource("DataSet1", filteredData); reportViewer1.LocalReport.DataSources.Add(rptDataSource); reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout); reportViewer1.ZoomMode = ZoomMode.Percent; reportViewer1.ZoomPercent = 100; cn.Close(); }