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);
}
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);
}
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();
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();
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
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();