İki tarih arası yapılan sorguyu Reportviewer ile görüntülemek.

ekankim (1) 7 yıl önce sordu

C# da Reportviewer ile access veri tabanından iki tarih arası sorgu yapıp görüntüleme yapmak için nasıl bir sorgu cümleciği yazmam gerekiyor. Listviewde gösterebiliyorum ama rapor olarak alamıyorum.

Listviewde görüntüleme kodlarım;

DateTime tarih1, tarih2;

                    string dt = tbilktarih.Text;
                    string dt1 = tbsontarih.Text;

                    dt = dt.Replace('/', '.');
                    dt1 = dt1.Replace('/', '.');

                    bool t1 = DateTime.TryParse(dt, new CultureInfo("tr-TR"), DateTimeStyles.None, out tarih1);
                    bool t2 = DateTime.TryParse(dt1, new CultureInfo("tr-TR"), DateTimeStyles.None, out tarih2);

                    OleDbCommand komut = new OleDbCommand("select * from kayitlar where b29 >= @tarih1 and b29 <= @tarih2", baglanti);
                    komut.Parameters.AddWithValue("@tarih1", t1 ? tarih1 : DateTime.MinValue);
                    komut.Parameters.AddWithValue("@tarih2", t2 ? tarih2 : DateTime.MaxValue);

                    OleDbDataReader oku = komut.ExecuteReader();

while (oku.Read())
                    {
                        ListViewItem li = new ListViewItem();
                        li.Text = oku["id"].ToString();             
                        li.SubItems.Add(oku["b1"].ToString());     
                        li.SubItems.Add(oku["b2"].ToString());     
                        li.SubItems.Add(oku["b3"].ToString());     
                        listView1.Items.Add(li);
                    }

Toplam 1 cevap


ekankim (1) 7 yıl önce cevapladı

Arkadaşlar epey bir uğraştıktan sonra kendi sorumun cevabını kendim buldum, başak bir arkadaşa lazım olur diye yazdığım kodu paylaşıyorum.

reportViewer1.Reset();
reportViewer1.LocalReport.ReportPath = (Application.StartupPath + "\\Rapor.rdlc");

OleDbDataAdapter adap = new OleDbDataAdapter("SELECT * FROM kayitlar where b22  like '" + konum + "' and b28 BETWEEN  @StartDate AND @EndDate", baglanti);
adap.SelectCommand.Parameters.AddWithValue("@StartDate",Convert.ToDateTime(tbkurdurilktar.Text).ToShortDateString());
adap.SelectCommand.Parameters.AddWithValue("@EndDate",Convert.ToDateTime(tbkurdursontar.Text).ToShortDateString());
DataTable tbl = new DataTable();
adap.Fill(tbl);

ReportDataSource rds = new ReportDataSource("DataSet1", tbl);
reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(rds);
reportViewer1.SetDisplayMode(DisplayMode.PrintLayout);
reportViewer1.LocalReport.Refresh();
reportViewer1.RefreshReport();