Wednesday, May 9, 2012

การใช้งาน DateTimePicker กับ Date ใน C#


เกริ่นนำ
การให้ค่ากับ DateTime Picker ในภาษา C# เป็นเรื่องที่จำเป็นอย่างมากที่เราควรจะรู้ในการให้ค่า และใช้งาน DateTime Picker เพราะ Window Application Form ส่วนใหญ่ที่เราสร้างขึ้นจะต้องได้ใช้แน่นอน และมันก็เป็นเรื่องง่ายๆ แต่ผมก็มักจะไม่ได้จำถ้าไม่ได้ใช้งานบ่อยๆ
๑. การให้ค่า DateTime Picker เป็น DateTime Now
เริ่มจากง่ายๆ เลยครับ การให้ค่าเป็นวันเดือนปีปัจจุบันตามนี้
1
dateTimePicker1.Value = DateTime.Now;
๒. การให้ค่า DateTime Picker แบบตรงๆเลย
1
dateTimePicker1.Value = new DateTime(2009, 7, 27); //ปี เดือน วัน
หรืออาจจะ Add ค่าเพิ่มหรือลด วันที่ ได้ดังนี้
1
2
3
dateTimePicker1.Value = dateTimePicker1.Value.AddDays(7);
//การลดค่า
dateTimePicker1.Value = dateTimePicker1.Value.AddDays(-7);
๓. การกำหนด Limiting DateTime Picker 
คือการให้ค่าสูงสุดหรือต่ำสุด สำหรับ DateTime Picker
1
2
3
4
5
datePicker.MinDate = new DateTime(2009, 1, 1); //ปี เดือน วัน
datePicker.MaxDate = new DateTime(2009, 12, 31); //ปี เดือน วัน
//หรือ
datePicker.MinDate = datePicker.Value.AddDays(-7);
datePicker.MaxDate = datePicker.Value.AddDays(7);
๓. การประยุกต์ใช้งานกับ select between ใน linq 
ในการใช้ค่าของ DateTime Picker ในการ Select ข้อมูลจาก Linq ผมได้ประยุกต์ใช้งานดังโค้ดนี้
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
public frmCashFlow()
{
InitializeComponent();
string d1 = DateTime.Now.ToShortDateString();
string d2 = DateTime.Now.ToShortDateString();
d1 = d1 + " 0:00:00";
d2 = d2 + " 23:59:59";
dateTimePicker1.Value = DateTime.Parse(d1);
dateTimePicker2.Value = DateTime.Parse(d2);
DateTime date1 = dateTimePicker1.Value;
DateTime date2 = dateTimePicker2.Value;
var cashflows = from cashflow in db.Select()
where cashflow.Dat >= date1 && cashflow.Dat < date2
orderby cashflow.Uniqnum
select cashflow;
bindingSource1.DataSource = cashflows;
}
จะเห็นว่าใน Linq จะไม่มี Select Between แต่เราสามารถประยุกต์ได้ด้วยการใช้ >= และ < แทน และมีการกำหนดเวลา Default ให้กับ DateTime Picker ด้วย
สรุป
ก็ได้แต่คาดหวังว่าบทความนี้จะมีประโยชน์บ้างสำหรับผู้ผ่านมาเจอนะครับ

No comments:

Post a Comment