Loop and Get Data (LINQ, Entity Framework) |
Loop and Get Data (LINQ, Entity Framework) ในการอ่านข้อมูลจาก Model Entities เราสามารถนำค่า Result ที่ได้ไปใช้กับ DataSource ใน Control หลาย ๆ ตัวได้ในทันที หรืออีกวิธีก็จะใช้การ Loop เพื่อแสดงข้อมูลใน Item ซึ่งปกติแล้วจะสามารถใช้ได้ทั้งการอ้างถึง index ด้วย for หรือจะใช้ loop ของ foreach เพื่อแสดงในแต่ล่ะรายการก็ได้ ส่วนถ้าในกรณีที่เลือกข้อมูลเพียงรายการเดียว จะนิยมใช้ FirstOrDefault() ซึ่งสามารถอ้างถึง Item นั้น ๆ ได้เลย
Example 1 : การ Loop เพื่ออ่านข้อมูลจาก List ที่ได้จากการ Select แล้วแปลงค่าให้เป็น .ToList()
Code (C#) การใช้ for และ .Count()
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();
// if found item rows
if (ds.Count() > 0)
{
for (int j = 0; j < ds.Count(); j++)
{
Console.WriteLine(string.Format("{0},{1},{2},{3},{4},{5}"
, ds[j].CUSTOMER_ID
, ds[j].NAME
, ds[j].EMAIL
, ds[j].COUNTRY_CODE
, ds[j].BUDGET
, ds[j].USED));
}
}
}
}
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()
' if found item rows
If ds.Count() > 0 Then
For j As Integer = 0 To ds.Count() - 1
Console.WriteLine(String.Format("{0},{1},{2},{3},{4},{5}", _
ds(j).CUSTOMER_ID, _
ds(j).NAME, _
ds(j).EMAIL, _
ds(j).COUNTRY_CODE, _
ds(j).BUDGET, _
ds(j).USED))
Next
End If
End Using
End Sub
Code (C#) การใช้ foreach เพื่อ Loop แสดงข้อมูล
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();
// if found item rows
if (ds.Count() > 0)
{
foreach (var item in ds)
{
Console.WriteLine(string.Format("{0},{1},{2},{3},{4},{5}"
,item.CUSTOMER_ID
,item.NAME
,item.EMAIL
,item.COUNTRY_CODE
,item.BUDGET
,item.USED));
}
}
}
}
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()
' if found item rows
If ds.Count() > 0 Then
For Each item In ds
Console.WriteLine(String.Format("{0},{1},{2},{3},{4},{5}", _
item.CUSTOMER_ID, _
item.NAME, _
item.EMAIL, _
item.COUNTRY_CODE, _
item.BUDGET, _
item.USED))
Next
End If
End Using
End Sub
Screenshot
ใช้การใช้ ,ToList() ในกรณีต้องการเช็คค่า Item ให้ใช้ .Count() ถ้ามากกว่า 0 แสดงว่ามีรายการ
Example 2 : การอ่านข้อมูลมาแค่ 1 รายการและการใช้ FirstOrDefault()
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).FirstOrDefault();
// if found item rows
if (ds != null)
{
Console.WriteLine("Customer ID = " + ds.CUSTOMER_ID);
Console.WriteLine("Name = " + ds.NAME);
Console.WriteLine("Email = " + ds.EMAIL);
Console.WriteLine("CountryCode = " + ds.COUNTRY_CODE);
Console.WriteLine("Budget = " + ds.BUDGET);
Console.WriteLine("Used = " + ds.USED);
}
}
}
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).FirstOrDefault()
' if found item rows
If ds IsNot Nothing Then
Console.WriteLine("Customer ID = " + ds.CUSTOMER_ID)
Console.WriteLine("Name = " + ds.NAME)
Console.WriteLine("Email = " + ds.EMAIL)
Console.WriteLine("CountryCode = " + ds.COUNTRY_CODE)
Console.WriteLine("Budget = " + ds.BUDGET)
Console.WriteLine("Used = " + ds.USED)
End If
End Using
End Sub
Screenshot
ในกรณีใช้ .FirstOrDefault(); ซึ่วจะเลือกรายการเดียว สามารถเช็คได้จากกาตรวจสอบหาค่า nul ค่าไม่ใช่ แสดงว่ามีรายการ
|
ช่วยกันสนับสนุนรักษาเว็บไซต์ความรู้แห่งนี้ไว้ด้วยการสนับสนุน Source Code 2.0 ของทีมงานไทยครีเอท
|
|
|
By : |
ThaiCreate.Com Team (บทความเป็นลิขสิทธิ์ของเว็บไทยครีเอทห้ามนำเผยแพร่ ณ เว็บไซต์อื่น ๆ) |
|
Score Rating : |
|
|
|
Create/Update Date : |
2015-10-02 21:14:10 /
2015-10-06 13:30:29 |
|
Download : |
No files |
|
Sponsored Links / Related |
|
|
|
|
|