Select Data Between Date

Posted at : Jun/13/2007
21734 Views | 14 Comments

Kadang kala kita membutuhkan data untuk keperluan laporan dimana datanya di filter dalam interval tanggal tertentu. Ada beberapa cara untuk melakukan hal tersebut, diantaranya yaitu : Menggunakan filtering data langsung di SQL statementnya, atau filtering record via datasource yang digunakan secara offline (misalnya menggunakan DataTable).

Kalau kita gunakan SQL statement anda tinggal gunakan klausa "Where DateOrder Between...And...". Kalau kita gunakan DataTable sebagai sumber data bagaimana caranya? Yang perlu dilakukan hanyalah dengan menggunakan properti RowFilter yang di assign dengan value "OrderDate >= ... And OrderDate <= ..." dengan asumsi kolom yang digunakan untuk pencarian data yaitu kolom OrderDate.

Dalam contoh ini saya menggunakan tabel Orders yang terdapat di database Northwind. Di form yang digunakan ditambahakan dua buah DateTimePicker untuk memilih tanggal order yang akan ditampilkan. Kolom yang digunakan untuk pencarian data yaitu kolom OrderDate. Let's see the code below :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace CrystalReportsApp
{
public partial class frmOrdersReport : Form {
DataTable dtOrders = new DataTable();
rptOrders rpt = new rptOrders();

public frmOrdersReport()
{
InitializeComponent();
}

private void SetReportDataSource()
{
using (SqlConnection sqlConn = new SqlConnection(
@"Database=Northwind2005;Uid=sa;Pwd=sql2005;Server=.\SQL2005"))
{
using (SqlCommand sqlCmd = new SqlCommand())
{
sqlCmd.CommandType = CommandType.Text;
sqlCmd.Connection = sqlConn;
sqlCmd.CommandText = "Select * From Orders";

if (sqlConn.State == ConnectionState.Closed) sqlConn.Open();
dtOrders.Load(sqlCmd.ExecuteReader());

rpt.SetDataSource(dtOrders);
crystalReportViewer1.ReportSource = rpt;
}
}
}

private void frmOrdersReport_Load(object sender, EventArgs e)
{
SetReportDataSource();
}

private void btnSeeOrders_Click(object sender, EventArgs e)
{
string strDate1 = dateTimePicker1.Value.ToString();
string strDate2 = dateTimePicker2.Value.ToString();

dtOrders.DefaultView.RowFilter = "OrderDate >= '" + strDate1 +
"' And OrderDate <= '" + strDate2 + "'";

rpt.SetDataSource(dtOrders.DefaultView);
crystalReportViewer1.ReportSource = rpt;
}

}
}


InfoEbook-ebook yang tersedia yang dapat dipesan secara langsung atau melalui google play store.



[Comments]

Awal (Jan/25/2008 07:42:07)
Mas Yulian, untuk ASP.NET-nya gimana klo Show Report ada filter dari tahun X s/d X... thx
Rully (Jan/25/2008 08:42:06)
Btw nama saya Rully :)...mas Awal klo pake cara yang diatas pake DataTable kita ga bisa filter dengan kebutuhan yang mas minta...paling juga maen2 di query nya, tanggalnya di parsing ke tahun yang diminta pake perintah SQL nya, abis itu baru diload ke datatable.
chen (Jul/24/2008 05:21:50)
Allo mas Rully, salam kenal. mo nanya soal crystal report. 1. aku mo bikin kondisi di select expert, tp based on formula field. itu gimana caranya ya ? aku lg perlu itu. aku udah bikin 1 formula field "@enddate. lalu, di select expert, aku pasang kondisi : fieldate <= @enddate. di pilihannya, emang ga muncul. jadinya aku ketik manual. tp muncul msg : "a number, currency amount, boolean, date, time , date-time or string is expected here" 2. sql expression fields itu, cara pakainya bagaimana , ya ? kalo baca dari help, mestinya sql statement. tp ga bisa. for example, aku sum data : sele
arga prastya (Feb/27/2010 03:06:24)
Dear Mr.Rully, Saya arga, saya baru saja mulai belajar program. Saya ingin menanyakan, contoh diatas kan untuk menampilkan data yang kita butuhkan sesuai tanggal, tapi menggunakan Crystal Report. Yang ingin saya tanyakan bagaimana ya caranya jika data yang ingin kita tampilkan tersebut ingin tampilkan di DataGridView bukan di Crystal Report. Mohon bantuannya ya pak, bisa di jawab melalui website ini atau bisa tolong send contoh codingnya di argaceuz92@gmail.com thanks.. Regards Arga
Rully (Mar/06/2010 07:15:39)
chen > coba di check lagi tipe data parameter field nya apakah sudah sesuai? Dan juga di check lagi return value yang dikembalikan dari formula field tersebut, kemungkinan tidak sesuai dengan requirementnya.
Rully (Mar/06/2010 07:16:55)
arga > Untuk menampilkannya di GridView cukup atur properti DataSource dari GridView nya dan beri nilai dari variabel DataTable yang sudah berisi data.
andre saputra (Nov/04/2010 07:03:15)

Mas maaf kalau saya tanya perihal code saya tentang hal yang sama :

button filter berisi :

[code]

If Option1.value = True Then
    reloadlistview1 "select * from sales"
Else
    reloadlistview1 "select * from sales where TANGGAL  between '" & Text1.Text & "'" & _
                    "and '" & Text2.Text & "' order by noinvoice"

End If

Rully (Nov/05/2010 08:58:10)

andre > Ini masih pake vb 6.0 ya? :) ...anyway format data yang disimpan di database sql server atau access itu defaultnya menggunakan format month-day-year...nah coba gunakan format date month-day-year untuk filter record nya.

Mudah-mudahan membantu.

agus ryo (Sep/04/2012 12:50:04)

mas rully.,klo mo nampilin form secara otomatis dengan menggunakan select case dengan cara mem filter dari sql 2005 bisa ga y?thanks before..:)

agus ryo (Sep/04/2012 12:52:46)

mas rully.,maaf 1 lgi,klo misalkan bisa itu harus membuat kodingnya di vb.netnya ga..??thanks before..:)

Yonathan (Apr/22/2015 08:52:27)

Mas, saya mau filter data sesuai datetimepicker dari datagrid gimana ya?

tolong kasih sourcecodenya dong. terimakasih

Rully (Apr/23/2015 08:33:16)

Yonathan > Pada prinsipnya sama, tinggal memanfaatkan event cell click yang terdapat di datagrid. Kalau tidak salah ada contoh pemanfaatan event tersebut di website saya ini, namun saya lupa artikelnya yang mana :D 

ilham (Apr/06/2017 08:23:16)

 numpang nanya mas Rully,,,

kalaw diterapkan pada gridview bagaimana langkah2nya ya ??

wassalam

Bramantyo Aryo W (Dec/30/2017 01:34:19)

 Terima Kasih pencerahannya, nama saya bramantyo.

saya mencari query pengganti between yang tidak support untuk filter dengan mengganti >= 'value' and <= 'value' pada aplikasi VB.net saya. 

 

Terima Kasih untuk pencerahannya . thats code is work :') 


[Write your comment]

Name (required)

Email (required-will not published)

Comment
bycx
Input code above below (Case Sensitive) :

ABOUT ME

Rully Yulian MF
Rully Yulian Muhammad Firmansyah | Founder & IT Trainer Native Enterprise | MCT (2008-2019) | MVP (2009-2016) | Xamarin Certified Professional | MTA | MCAD | MCPD | MOS | Bandung, West Java, Indonesia.

[Read More...]

TOP DOWNLOAD

Mapping Hak Akses User Pada MenuStrip Sampai Control Button
downloaded 6983 times

Bagaimana caranya menginstal database ketika deploying sebuah aplikasi?
downloaded 4893 times

Simple Voice Engine Application With Sound Player Class...
downloaded 4045 times

Change Group,Sort Order, Filtering By Date in Crystal Reports
downloaded 3460 times

WinForms DataGrid Paging With SqlDataAdapter
downloaded 2881 times


LINKS

CERTIFICATIONS

Xamarin Certified
MOS 2007
MCT
MCPD
MCTS
MCAD.NET
ASP.NET Brainbench

NATIVE ENTERPRISE

Native Enterprise - IT Training

FOLLOW ME

Youtube  Facebook  Instagram  LinkedIn   Twitter

RSS


NATIVE ENTERPRISE NEWS

© Copyright 2006 - 2024   Rully Yulian MF   All rights reserved.