เรียกใช้งาน Entity Framework การ Select ข้อมูลจาก Entities แสดงผลบน DataSource Control |
เรียกใช้งาน Entity Framework การ Select ข้อมูลจาก Entities แสดงผลบน DataSource Control ในหัวข้อนี้เราจะมาเรียนรู้วิธีการเริ่มต้นการใช้งาน Entity และการใช้ LINQ to Entities เพื่อดึงข้อมูลจาก Model Entities มาแสดงบน Control ที่สามารถกำหนด DataSource ได้ เช่น DataGridView รวมทั้งวิธีการใช้ Syntax ของ LINQ แบบง่าย ๆ เพื่อ Select รายการข้อมูลจาก EntitySet เช่น การ Select ข้อมูลของ Table ทั้งหมด หรือการ Select ข้อมูลบาง Column
ใน Model แสดงชื่อของ EntitySet ซึ่งจะ Mapping กับ Table ของ Database ไว้เรียบร้อยแล้ว
ในตัวอย่างนี้เราจะใช้การ Select ค่าจาก Entities แล้วนำไปใช้กับ DataSource Control บน DataGridView
ทดสอบสร้าง Project แบบ Windows Form Application สร้าง DataGridView และกำหนด ID ดังรูป
ขั้นตอนการเรียกใช้ Entities
ขั้นที่ 1 : เรียกใช้งาน Entities
Code (C#)var db = new myDatabaseEntities(); Code (VB.Net)Dim db = New myDatabaseEntities()
ขั้นที่ 2 : Select ข้อมูลจาก EntitySet หรือจาก Table
Code (C#)var ds = db.CUSTOMER.ToList(); Code (VB.Net)Dim ds = db.CUSTOMER.ToList()
ขั้นที่ 3 : ทำการ Assign ค่าใส่ DataSource
Code (C#) this.myDataGridView.DataSource = ds; Code (VB.Net)Me.myDataGridView.DataSource = ds
Code เมื่อนำไปใช้กับ Form Load
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities Object
var db = new myDatabaseEntities();
// Get data from CUSTOMER
var ds = db.CUSTOMER.ToList();
// Assign to DataGridView
this.myDataGridView.DataSource = ds;
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities Object
Dim db = New myDatabaseEntities()
' Get data from CUSTOMER
Dim ds = db.CUSTOMER.ToList()
' Assign to DataGridView
Me.myDataGridView.DataSource = ds
End Sub
เขียนได้อีกรูปแบบหนึ่งคือ (from c in db.CUSTOMER select c).ToList();
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities Object
var db = new myDatabaseEntities();
// Get data from CUSTOMER
var ds = (from c in db.CUSTOMER
select c).ToList();
// Assign to DataGridView
this.myDataGridView.DataSource = ds;
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities Object
Dim db = New myDatabaseEntities()
' Get data from CUSTOMER
Dim ds = (From c In db.CUSTOMER Select c).ToList()
' Assign to DataGridView
Me.myDataGridView.DataSource = ds
End Sub
ในการเขียนแนะนำให้ใช้ using เพื่อกำหนด Scope ของ Entities ที่เรียกใช้ เพราะจะมีการ Close หรือ Dispose ตัว Object อัตโนมัติ
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities Object
using (var db = new myDatabaseEntities())
{
// Get data from CUSTOMER
var ds = (from c in db.CUSTOMER
select c).ToList();
// Assign to DataGridView
if (ds.Count() > 0)
{
this.myDataGridView.DataSource = ds;
}
}
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities Object
Using db = New myDatabaseEntities()
' Get data from CUSTOMER
Dim ds = (From c In db.CUSTOMER Select c).ToList()
' Assign to DataGridView
If ds.Count() > 0 Then
Me.myDataGridView.DataSource = ds
End If
End Using
End Sub
Screenshot
คำอธิบาย
// Get data from CUSTOMER
var ds = db.CUSTOMER.ToList();
และ
// Get data from CUSTOMER
List<CUSTOMER> ds = db.CUSTOMER.ToList();
จะได้ผลลัพธ์ที่เหมือนกัน แต่วิธีแรกจะทำการ Return และ Type จากค่า Result ทีไ่ด้ ส่วนวิธีที่สองจะกำหนด ชนิดของ Result ว่าจะต้องตรงกับ Type ที่ประกาศท่านั้น ซึ่งในกรณีที่ Select จาก EntitySet ที่ได้ค่า Object ตามโครงสร้างของ Table
ลองมาดูวิธีการ Select ข้อมูลจาก Entities ในรุปแบบต่าง ๆ แบบง่าย ๆ
Example : การใช้ Select ข้อมูลและเลือกเฉพาะบาง Column
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities Object
using (var db = new myDatabaseEntities())
{
// Get data from CUSTOMER
var ds = (from c in db.CUSTOMER
select new
{
c.CUSTOMER_ID,
c.NAME,
c.COUNTRY_CODE,
}).ToList();
// Assign to DataGridView
if (ds.Count() > 0)
{
this.myDataGridView.DataSource = ds;
}
}
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities Object
Using db = New myDatabaseEntities()
' Get data from CUSTOMER
Dim ds = (From c In db.CUSTOMER Select New With { _
c.CUSTOMER_ID, _
c.NAME, _
c.COUNTRY_CODE _
}).ToList()
' Assign to DataGridView
If ds.Count() > 0 Then
Me.myDataGridView.DataSource = ds
End If
End Using
End Sub
Screenshot
Example : การใช้ Select ข้อมูลแล้วนำไปสร้างเป็น Column ใหม่ พร้อมกับระบุค่าไปใน Column
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities Object
using (var db = new myDatabaseEntities())
{
// Get data from CUSTOMER
var ds = (from c in db.CUSTOMER
select new
{
CustomerID = "ID = " + c.CUSTOMER_ID,
CustomerName = c.NAME,
Country = "Code = " + c.COUNTRY_CODE,
}).ToList();
// Assign to DataGridView
if (ds.Count() > 0)
{
this.myDataGridView.DataSource = ds;
}
}
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities Object
Using db = New myDatabaseEntities()
' Get data from CUSTOMER
Dim ds = (From c In db.CUSTOMER Select New With { _
.CustomerID = "ID = " + c.CUSTOMER_ID, _
.CustomerName = c.NAME, _
.Country = "Code = " + c.COUNTRY_CODE _
}).ToList()
' Assign to DataGridView
If ds.Count() > 0 Then
Me.myDataGridView.DataSource = ds
End If
End Using
End Sub
Screenshot
Example : การใช้ Limit ด้วย Take ร่วมกับ Select
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities Object
using (var db = new myDatabaseEntities())
{
// Get data from CUSTOMER
var ds = (from c in db.CUSTOMER
select c).Take(1).ToList();
// Assign to DataGridView
if (ds.Count > 0)
{
this.myDataGridView.DataSource = ds;
}
}
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities Object
Using db = New myDatabaseEntities()
' Get data from CUSTOMER
Dim ds = (From c In db.CUSTOMER Select c).Take(1).ToList()
' Assign to DataGridView
If ds.Count > 0 Then
Me.myDataGridView.DataSource = ds
End If
End Using
End Sub
Screenshot
Example : การใช้ Limit ด้วยคำสั่ง Take โดยการ Select มาทั้งหมดแล้วค่อยนำมา Take
Code (C#)
private void frmMain_Load(object sender, EventArgs e)
{
// Create new entities Object
using (var db = new myDatabaseEntities())
{
// Get data from CUSTOMER
var ds = (from c in db.CUSTOMER
select c).ToList();
// New ds2
var ds2 = ds.Take(2).ToList();
// Assign to DataGridView
if (ds2.Count > 0)
{
this.myDataGridView.DataSource = ds2;
}
}
}
Code (VB.Net)
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' Create new entities Object
Using db = New myDatabaseEntities()
' Get data from CUSTOMER
Dim ds = (From c In db.CUSTOMER Select c).ToList()
' New ds2
Dim ds2 = ds.Take(2).ToList()
' Assign to DataGridView
If ds2.Count > 0 Then
Me.myDataGridView.DataSource = ds2
End If
End Using
End Sub
Screenshot
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2015-10-02 21:13:57 /
2017-03-24 23:04:52 |
|
Download : |
No files |
|
Sponsored Links / Related |
|
|
|
|
|
|
|