Thursday, May 10, 2012

C# with LINQ (Windows Form Application)

ในหัวข้อที่แล้วเราได้โค้ดเกี่ยวกับ การจัดการโมเดล กับส่วน จัดการข้อมูลไปแล้ว บทความนี้จะเสนอตัวอย่างการใช้งาน บนฟอร์มกันบ้าง เรามาดูตัวอย่างการใช้งานกันเลย
รูปแสดง การออกแบบฟอร์มการใช้งานบนวินโดว์
1. อันดับแรกให้วาดฟอร์มดังรูปด้านบน
2. โค้ดฟอร์มโหลด ซึ่งจะโหลดข้อมูลทุกรายการมาแสดงบนฟอร์มดังนี้
1
2
3
4
5
6
7
private CompanyBAL comdb = new CompanyBAL();
private void frmCompany_Load(object sender, EventArgs e)
{
var comp = comdb.Select();
gridControl1.DataSource = comp;
label4.Text = comp.Count.ToString();
}
3. เขียนโค้ดส่วนค้นหาข้อมูล ซึ่งตัวนี้แล้วเป็นโค้ดส่วนใหญ่ที่เราจะได้ใช้งานกันนะครับ ส่วนการใช้เงื่อนไขให้กลับไปดูบทความก่อนๆ ที่เกี่ยวกับการเลือกข้อมูลโดยการใช้เงื่อนไข ตัวอย่างดังนี้ครับ
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
private void toolStripButton4_Click(object sender, EventArgs e)
{
//Serarch Name...
var comp = comdb.Select();
var newcomp = (from c in comp
where c.CompanyName.Contains(toolStripTextBox1.Text)
select c);
//Convert Linq to List...
List companys = new List<Company>();
foreach (var c in newcomp)
companys.Add(c);
//Set Datasource...
gridControl1.DataSource = companys;
label4.Text = companys.Count.ToString();
}
จะเห็นได้ว่าเราจะแปลงข้อมูลจากลินคิวกลับมาลง ออเจ็คคอมพานีอีกรอบหนึ่ง เนื่องจากหลังจากเราค้นข้อมูลเรียบร้อยแล้วข้อมูลจะเป็นชนิด ลินคิวออปเจ็คซึ่ง gridControl จะไม่รู้จักข้อมูลชนิดนี้จึงแปลงกลับมาโดยชุดคำสั่งนี้
1
2
3
4
5
6
7
8
//Convert Linq to List...
List companys = new List<Company>();
foreach (var c in newcomp)
companys.Add(c);
 
//หรือแบบสั้นๆ
 
companys = newcomp.ToList();
ส่วนโค้ดการบันทึก/แก้ไข ก็เหมือนกับ การเขียนแบบทั่วๆ ไปครับตัวอย่างนี้เน้น การดึงข้อมูลโดยใช้ลินคิวในการกรองข้อมูล…

No comments:

Post a Comment