DataSet
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

DataSet

on

  • 1,611 views

DataSet

DataSet

Statistics

Views

Total Views
1,611
Views on SlideShare
1,609
Embed Views
2

Actions

Likes
0
Downloads
39
Comments
0

1 Embed 2

http://www.docshut.com 2

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

DataSet Presentation Transcript

  • 1. DataSetSuan Dusit Rajabhat University, Phitsanulok Campus Mr.Warawut Khangkhan
  • 2. DataSet ● DataSet คอ ออบเจกตทถอไดวาเปนหวใจของ ADO.NET สาหรบการเขาถ!งขอม#ลแบบ Disconnected เนองจากออบเจกตน&ใชเกบขอม#ลท โปรแกรมด!งมาจากฐานขอม#ล โดยการทางานกบ ขอม#ลใน DataSet จะมร#ปแบบเปนเช,งสมพนธ (Relational) เหมอนการทางานกบฐานขอม#ลโดยตรง แตเปนอ,สระจากฐานขอม#ล ● DataSet ยงสามารถใชเกบขอม#ลทอานมาจากเทกซ ไฟล (Text File) หรอแหลงขอม#ลแบบ XML ไดดวยK.Warawut DataSet 2
  • 3. โครงสรางการทางานของออบเจกต DataSet DataTable Object DataColumn Object DataRow ObjectK.Warawut DataSet 3
  • 4. DataTable Object ● คอ ตวแทนของแตละ table ใน DataSet ● Table จะถ#กรวบรวมไวในคอลเลคชน DataTableCollection ซ!งเขาถ!งไดโดยเรยกใชพรอพ เพอรต& Tables ของ DataSet (Default) For Each tb As DataTable In ds.Tables TextBox1.Text &= tb.TableName & ControlChars.CrLf NextK.Warawut DataSet 4
  • 5. DataColumn Object ● โครงสรางของแตละ table จะถ#กกาหนดโดย คอลเลคชน DataColumnCollection ซ!งบรรจ1ออบ เจกต DataColumn ไว ● DataColumn คอ ตวแทนของ field หน!งๆ โดยเกบ ค1ณสมบต,ตางๆ เกยวกบ field น&นไว เชน ชอฟ4ลด และชน,ดขอม#ลของฟ4ลด เปนตนK.Warawut DataSet 5
  • 6. DataColumn Object (Cont.) ● สามารถเขาถ!งคอลเลคชน DataColumnCollection ไดโดยเรยกใชพรอพเพอรต& Columns ของ DataTableFor Each f As DataColumn In ds.Tables(“Emp”).Columns TextBox1.Text &= f.ColumnName & “: “ & f.DataType.ToString & _ ControlChars.CrLfNext DataColumn Object จะเกบคณสมบตเกยวกบฟลด แตไมไดเกบขอมลในฟลดไว การเขาถ%งขอมลในฟลดจะตองใช DataRow ObjectK.Warawut DataSet 6
  • 7. DataRow Object ● DataTable จะเกบขอม#ล record ตางๆ ไวใน คอลเลคชน DataRowCollection ซ!งบรรจ1ออบเจกต DataRow ไวต&งแต 0 ออบเจกตข!&นไป โดยแตละออบ เจกต คอ ตวแทนของ record หน!งๆ ● การเขาถ!งคอลเลคชน DataRowCollection ใหใช พรอพเพอรต& Rows ของ DataTable สวนการเขาถ!ง ขอม#ลแตละ field ใน record ใหใชพรอพเพอรต& Item ของ DataRow โดยระบ1ชอ field เปนอารก,วเมนตK.Warawut DataSet 7
  • 8. DataRow Object (Cont.) For Each row As DataRow In ds.Tables(“Emp”).Rows TextBox1.Text &= row.Item(“Firstname”) & ControlChars.CrLf Next เน(องจากพรอพเพอรต* Item เป,น Default Property ของ DataRow ดงน*นแทนทจะเขยนวา row.Item(“Firstname”) อาจเขยนส*นๆ ได row(“Firstname”)K.Warawut DataSet 8
  • 9. การเพ,มขอม#ลเขาไปใน DataSet● การเพ,มขอม#ลเขาไปใน DataSet คอ การเพ,ม record ใหมเขาไปยง table ใน DataSet ซ!งทาไดโดยเรยก เมธอด NewRow ของ table (DataTable Object) ท ตองการเพ,ม record เขาไป เมธอดน&จะสราง ออบเจกต DataRow ข!&นมาใหมและสงคน (Return) ออบเจกตน&นกลบมาให ดงน&นตองประกาศตวแปร ออบเจกตชน,ด DataRow เพอรบคาจากเมธอด แลว กาหนดขอม#ลลงใน field ตางๆ ของ record ผานทาง ตวแปรดงกลาว ส1ดทายใหเพ,มออบเจกต DataRow เขาไปในคอลเลคชน DataRowCollection ของ tableK.Warawut DataSet 9
  • 10. ตวอยาง การเพ,มขอม#ลเขาไปใน DataSetประกาศตวแปรเพออางอ,งไปยงเทเบ,ล Emp ใน DataSetDim tb As DataTable = ds.Tables(“Emp”)สรางเรคอรดใหมทมโครงสรางของฟ4ลดตางๆ ตามทกาหนดโดยเทเบ,ล Emp แลวใชตวแปร row อางอ,งไปยงเรคอรดใหมน&น(เรคอรดใหมยงไมถ#กเพ,มเขาไปในเทเบ,ล Emp)Dim row As DataRow = tb.NewRow( )กาหนดคาใหกบฟ4ลดตางๆ ถาตองการใหเพมลงในฐานขอมลจรงๆrow(“FirstName”) = “วราว1ฒ,” ตองใชเมธอด Update ของ DataAdapterrow(“LastName”) = “แขงขน”row(“Title”) = “Teach”row(“BirthDate”) = #11/21/1974#เพ,มเรคอรดใหมเขาไปยงเทเบ,ล Emp ใน DataSettb.Rows.Add(row)
  • 11. การแกไขขอม#ลใน DataSetประกาศตวแปรเพออางอ,งไปยงเทเบ,ล Emp ใน DataSetDim tb As DataTable = ds.Tables(“Emp”)วนล#ปเพอทางานกบขอม#ลพนกงานท&งหมดในเทเบ,ล EmpFor Each row As DataRow In tb.Rows ถาพนกงานมชอและนามสก1ลวา “วราว1ฒ, แขงขน” If row(“FirstName”) = “วราว1ฒ,” And row(“LastName”) = “แขงขน” Then ใหแกไขชอเปน “Warawut” row(“FirstName”) = “Warawut” แกไขนามสก1ลเปน “Khangkhan” row(“LastName”) = “Khangkhan” End If คอ การแกไขเรคอรดทมอย#แลวใน DataSetNext โดยกาหนดคาใหมใหกบฟ4ลดทตองการ DataSet 11
  • 12. การลบขอม#ลใน DataSet● การลบขอม#ลใน DataSet ทาไดโดยเรยกเมธอด Delete ของเรคอรด (ออบเจกต DataRow) ท ตองการลบ ซ!งเรคอรดจะไมถ#กลบออกไปจาก DataSet จร,งๆ แตจะถ#กกาหนดสถานะ (พรอพเพอรต& RowState) เปนคา Deleted การเปลยนสถานะของเร คอรดแทนทจะลบออกจาก DataSet น&ทาให DataAdapter ร#วาตองลบเรคอรดใดในฐานขอม#ล เมอเรยกเมธอด Update ของ DataAdapter เพอนา ขอม#ลจาก DataSet ไปอพเดลลงฐานขอม#ล ซ!งหลง จากอพเดลฐานขอม#ลแลว เรคอรดน&นจ!งจะถ#กลบออก ไปจาก DataSet จร,งๆ 12
  • 13. ตวอยาง การลบขอม#ลใน DataSetประกาศตวแปรเพออางอ,งไปยงเทเบ,ล Emp ใน DataSetDim tb As DataTable = ds.Tables(“Emp”)วนล#ปเพอทางานกบขอม#ลพนกงานท&งหมดในเทเบ,ล EmpFor Each row As DataRow In tb.Rows ถาพนกงานมชอและนามสก1ลวา “Warawut Khangkhan” If row(“FirstName”) = “Warawut” And row(“LastName”) = “Khangkhan” Then ใหลบขอม#ลของพนกงานคนน&นท,&งไป row.Delete( ) End IfNextK.Warawut DataSet 13
  • 14. สถานะของเรคอรด คา ความหมายAdded เรคอรดถ#กเพ,มเขามาใน DataRowCollection (พรอพเพอรต& Rows) ดวยเมธอด Add ของ DataRowCollection ซ!งหลงจากอพเดทขอม#ล ลงฐานขอม#ลแลว สถานะจะเปลยนไปเปน UnchangedDeleted เรคอรดถ#กลบแลว ซ!งหลงจากอพเดลขอม#ลลง ฐานขอม#ลแลว เรคอรดจะถ#กลบออกไปจาก DataSet จร,งๆDetached เรคอรดถ#กสรางข!&นมา แตยงไมถ#กเพ,มเขาไปใน DataRowCollectionK.Warawut DataSet 14
  • 15. สถานะของเรคอรด (ตอ) คา ความหมายModified เรคอรดถ#กแกไขขอม#ล ซ!งหลงจากอพเดท ขอม#ลลงฐานขอม#ลแลว สถานะจะเปลยนไป เปน UnchangedUnchanged เรคอรดไมมการเปลยนแปลงใดๆ ซ!งเปนคาเร,ม ตนของเรคอรดทเพ,งถ#กอานจากฐานขอม#ลมา ใสลง DataSetK.Warawut DataSet 15
  • 16. การผ#ก DataSet เขากบ คอนโทรลบนฟอรม● Data Binding หมายถ!ง การเชอมโยงกนระหวางออบ เจกตททาหนาทเปน “ผ#จดเตรยมขอม#ล” (Data Provider) หรอ “แหลงขอม#ล” (Data Source) กบ ออบเจกตททาหนาทเปน “ผ#ใชขอม#ล” (Data Consumer) ซ!ง Data Provider ในกรณของเราคอ เทเบ,ล (ออบเจกต DataTable) ใน DataSet สวน Data Consumer ไดแกคอนโทรลตางๆ ทใชแสดง ผลขอม#ล เรยกวา data-bound control● Data Consumer หรอทเรยกวา Data-bound control แบงได 2 ประเภท คอ simple-bound control และ complex-bound control 16
  • 17. Simple Data Binding● อาศยพรอพเพอรต& DataBindings ของคอนโทรลน&น ในการระบ1การเชอมโยงระหวางพรอพเพอรต&ของ คอนโทรลกบแหลงขอม#ล Object.DataBindings.Add(propertyName, dataSource, DataMember) object คอนโทรลททาหนาทเป!น Data Consumer propertyName พร"อพเพอร#ตของคอนโทรลทใชทา Data Binding $ dataSource ออบเจ"กต#ททาหนาทเป!นแหลงขอมลหร(อ Data Provider ซ*งปกตเราจะระบ,เทเบลใน DataSet ให-ก-บพารามเตอร#น$ dataMember ช(อฟ/ลด#ในแหลงขอมลทใชทา DataBinding TextBox1.DataBindings.Add(“Text”, ds.Table(“Emp”), “FirstName”)
  • 18. Complex Data Binding● คอนโทรลบางชน,ด เชน ListBox, ComboBox และ DataGridView สามารถแสดงขอม#ลจากแหลงขอม#ล ไดหลายเรคอรดพรอมกน เนองจากคอนโทรลเหลา น&แสดงขอม#ลในร#ปแบบรายการ (list) หรอในร#ปแบบ ตาราง● การทา Data Binding กบ Complex-Bound Control น&น จะตองกาหนดออบเจกตทเปนแหลงขอม#ลใหกบ พรอพเพอรต& DataSource ของคอนโทรล DataGridView1.DataSource = ds.Table(“Emp”) ListBox1.DataSource = ds.Table(“Emp”) ListBox1.DisplayMember = “FirstName”
  • 19. การเลอนไปยงเรคอรดตางๆ ● การเลอนเรคอรด หมายถ!ง การเปลยนแปลงเรคอรดท เปนเรคอรดป<จจ1บน โดยเรคอรดป<จจ1บน (Current Record) คอ เรคอรดทจะถ#กแสดงขอม#ลออกมาใน Simple-Bound Control ● ออบเจกต CurrencyManager (ตวจดการเรคอรด ป<จจ1บน) คอ ออบเจกตทคอยจดจาตาแหนงของ เรคอรดป<จจ1บนสาหรบแหลงขอม#ลหน!งๆ โดยแตละ แหลงขอม#ลจะมออบเจกต CurrencyManager เปน ของตวเองK.Warawut DataSet 19
  • 20. การเลอนไปยงเรคอรดตางๆ (ตอ) ● ออบเจกต CurrencyManager ท&งหมดทสมพนธกบ แหลงขอม#ลตางๆ ภายในฟอรมจะถ#กจดการผานออบ เจกต BindingContext ในฟอรมน&น ● การเขาถ!ง CurrencyManager สาหรบแหลงขอม#ลท ตองการ ทาไดโดยเรยกใชพรอพเพอรต& BindingContext ของฟอรม พรอมท&งสงแหลง ขอม#ลน&นไปเปนอารก,วเมนต Me.BindingContext(ds.Tables(“Emp”)) คอ การเขาถ!งออบเจกต CurrencyManager ทคอย จดจาตาแหนงเรคอรดป<จจ1บนในเทเบ,ล EmpK.Warawut DataSet 20
  • 21. การเลอนไปยงเรคอรดตางๆ (ตอ) ● เลอนเรคอรด สามารถกาหนดหมายเลขเรคอรดท ตองการใหเปนเรคอรดป<จจ1บนทพรอพเพอรต& Position ของ CurrencyManager ● กาหนดใหเรคอรดแรกเปนเรคอรดป<จจ1บน Me.BindingContext(ds.Table(“Emp”)).Position = 0 ● กาหนดใหเรคอรดทอย#ถดจากเรคอรดป<จจ1บนเปนเร คอรดป<จจ1บน Me.BindingContext(ds.Table(“Emp”)).Position += 1K.Warawut DataSet 21
  • 22. การเลอนไปยงเรคอรดตางๆ (ตอ) ● กาหนดใหเรคอรดทอย#กอนหนาเรคอรดป<จจ1บนเปนเร คอรดป<จจ1บน Me.BindingContext(ds.Table(“Emp”)).Position -= 1 ● กาหนดใหเรคอรดลาดบท 3 เปนเรคอรดป<จจ1บน Me.BindingContext(ds.Table(“Emp”)).Position = 2 ● กาหนดใหเรคอรดส1ดทายเปนเรคอรดป<จจ1บน Me.BindingContext(ds.Table(“Emp”)).Position = _ Me.BindingContext(ds.Table(“Emp”)).Count - 1K.Warawut DataSet 22
  • 23. เพ,มและลบเรคอรดในแหลงขอม#ลโดยใช CurrencyManager ● ออบเจกต CurrencyManager ไมไดมความสามารถ แคการจดจาและเปลยนตาแหนงเรคอรดป<จจ1บน เทาน&น ออบเจกตน&ยงใชเพ,มหรอลบเรคอรดในแหลง ขอม#ลทมนรบผ,ดชอบอย#ไดดวย โดยใชเมธอด AddNew และ RemoveAt ตามลาดบ ● เมธอด AddNew จะสรางเรคอรดวางๆ ข!&นมาใน แหลงขอม#ล พรอมท&งกาหนดใหเรคอรดใหมน&นเปน เรคอรดป<จจ1บนโดยอตโนมต,K.Warawut DataSet 23
  • 24. เพ,มและลบเรคอรดในแหลงขอม#ลโดยใช CurrencyManager (ตอ) ● เมธอด RemoveAt ตองการอารก,วเมนต 1 ตว คอ หมายเลขของเรคอรดทจะลบเกบหมายเลขของเรคอรดป0จจบนไวในตวแปร iCurrentRecordDim iCurrentRecord As Integer = _ Me.BindingContext(ds.Tables(“Emp”)).Positionลบเรคอรดทมหมายเลขต1าแหนงเทากบคาของ iCurrentRecordMe.BindingContext(ds.Tables(“Emp”)).RemoveAt(iCurrentRecord) K.Warawut DataSet 24
  • 25. Example: CurrencyManager ProjectK.Warawut DataSet 25
  • 26. การกลนกรองและเรยงลาดบขอม#ลดวย DataView ● DataView ทาหนาทกลนกรองขอม#ลใน DataTable ตามทกาหนด แลวแสดงขอม#ลน&นออกไปใหแก คอนโทรลทผ#กอย#กบมน นอกจากน&ยงสามารถเพ,ม ลบ และแกไขเรคอรดใน DataTable ผาน DataView ไดอกดวย ● DataView ชวยสราง “ม1มมองขอม#ล” (Data View) ท แตกตางไปจาก DataTable เชน DataTable อาจ เกบขอม#ลพนกงานท&งหมดไวโดยเรยงลาดบตามชอ แตค1ณอาจสราง DataView ข!&นมาครอบ DataTable น&นโดยใหจดเรยงเรคอรดตามนามสก1ลK.Warawut DataSet 26
  • 27. สราง DataView ● โดยสรางออบเจกตของคลาส DataView ใน เนมสเปซ System.Data ข!&นมา พรอมท&งระบ1 DataTable เปนอารก,วเมนตใหกบคอนสตรคเตอร ของคลาส เพอใช DataView เปลยนม1มมองขอม#ลใน DataTable น&น ตวอยาง Dim dv As New DataView(ds.Tables(“Emp”)) หรออาจสราง DataView ข!&นมากอน แลวคอยระบ1 DataTable ใหทหลงทพรอพเพอรต& Table Dim dv As New DataView( ) dv.Table = ds.Tables(“Emp”)K.Warawut DataSet 27
  • 28. กลนกรองและเรยงลาดบขอม#ลใน DataView ● เมอสราง DataView ข!&นมาใหมๆ ขอม#ลใน DataView จะมม1มมองเหมอนกบขอม#ลใน DataTable ทมนครอบอย#ท1กประการ แตหลง จากน&นค1ณสามารถเปลยนม1มมองขอม#ลใหกบ DataView ได โดยใชพรอพเพอรต& เชน RowFilter และ Sort เปนตนK.Warawut DataSet 28
  • 29. พรอพเพอรต& RowFilter ของ DataView ● กลนกรองใหเหลอเฉพาะเรคอรดทมคาของฟ4ลด City เทากบ “Seattle” dv.RowFilter = “City = Seattle” ● กลนกรองใหเหลอเฉพาะเรคอรดทมคาของฟ4ลด City เทากบ “Des Moines” แตคาของฟ4ลด State ตองไม เทากบ “IA” dv.RowFilter = “City = Des Moines AND (NOT State = IA)”K.Warawut DataSet 29
  • 30. พรอพเพอรต& RowFilter ของ DataView (ตอ) ● กลนกรองใหเหลอเฉพาะเรคอรดทมคาของฟ4ลด City เทากบ “Seattle”, “Tacoma” หรอ “Blaine” dv.RowFilter = “City IN (Seattle, Tacoma, Blaine)” ● กลนกรองใหเหลอเฉพาะเรคอรดทมคาของฟ4ลด City ข!&นตนดวยคาวา “Sea” dv.RowFilter = “City LIKE Sea%”K.Warawut DataSet 30
  • 31. พรอพเพอรต& Sort ของ DataView● ใหเรยงลาดบตามรหสพนกงาน dv.Sort = “CustomerID”● ใหเรยงลาดบตามชอพนกงาน โดยถาชอซ&ากนให เรยงลาดบตามนามสก1ล dv.Sort = “FirstName, LastName”● ใหเรยงลาดบตามชอเมองจากมากไปนอย dv.Sort = “City DESC”● ใหเรยงลาดบตามชอรฐจากมากไปนอย แตถาชอรฐ เหมอนกนใหเรยงลาดบตามชอเมองจากนอยไปมาก dv.Sort = “State DESC, City” 31
  • 32. Example: DataViewDemo ProjectK.Warawut DataSet 32
  • 33. ทางานกบ DataSet ทมหลายเทเบล Example: MasterDetailsDemo ProjectK.Warawut DataSet 33
  • 34. กาหนดความสมพนธระหวางเทเบ,ลดวย DataRelation ● การกาหนดความสมพนธระหวางเทเบ, 2 เทเบ,ลใน DataSet ทาไดโดยสรางออบเจกต DataRelation ข!&นมา ซ!งแตละออบเจกตจะเปนตวแทนของความ สมพนธหน!งๆ ● การสรางออบเจกต DataRalation น&นจะตองระบ1ชอ ความสมพนธและฟ4ลด (ออบเจกต DataColumn) ใน เทเบ,ลท&งสองทใชเชอมโยงขอม#ลจาก 2 เทเบ,ลน&น เขาดวยกนK.Warawut DataSet 34
  • 35. การสรางออบเจกต DataRelation DataRelation(relationName, parentColumn, childColumn) ● relationName ชอความสมพนธทตองการกาหนด ● parentColumn ฟ4ลด (ออบเจกต DataColumn) ใน Parent Table ทเชอมดยงไปยงฟ4ลดใน Child Table ● childColumn ฟ4ลด (ออบเจกต DataColumn) ใน Child Table ทเชอมโยงไปยงฟ4ลดใน Parent TableK.Warawut DataSet 35
  • 36. ตวอยาง การสรางออบเจกต DataRelationใชตวแปร parentColumn อางองไปยงฟ#ลดCustomerID ในเทเบล CustDim parentColumn As DataColumn =ds.Tables(“Cust”).Columns(“CustomerID”)ใชตวแปร childColumn อางองไปยงฟ#ลดCustomerID ในเทเบล OrdDim childColumn As DataColumn = ds.Tables(“Ord”).Columns(“CustomerID”)กาหนดความสมพนธชอ CustomerOrders ข()นมาDim relation As DataRelation = New DataRelation(“CustomerOrders”, parentColumn, childColumn)K.Warawut DataSet 36
  • 37. เพ,ม DataRelation เขาไปใน DataRelationCollection● เมอสรางออบเจกต DataRelation ข!&นมาแลว จะตอง เพ,มออบเจกตน&เขาไปในคอลเลคชน DataRelationCollection ของ DataSet ดวย เชน ds.Relations.Add(relation) คอ การเพ,มความสมพนธ (ออบเจกต DataRelation) ทสรางข!&นเมอคร#น& เขาไปในคอลเลคชน DataRelationCollection● พรอพเพอรต& Relations ของ DataSet จะใหคาเปน ออบเจกต DataRelationCollection ซ!งเปนคอลเล คชนทบรรจ1ออบเจกต DataRelation ท&งหมดท เกยวของกบ DataSet 37
  • 38. การเขาถ!งเรคอรดในอกเทเบ,ลหน!งท สมพนธกน ● เมอเพ,มเขาไปใน DataRelationCollection (พรอพเพอรต& Relations ของ DataSet) เรยบรอย แลว เมอทางานอย#กบเรคอรดใน Parent Table จะ สามารถเขาถ!งเรคอรดใน Child Table ทสมพนธกบ เรคอรดน&นๆ ได โดยเรยกใชเมธอด GetChildRows ของเรคอรด (ออบเจกต DataRow) น&นพรอมท&งระบ1 ชอความสมพนธเปนอารก,วเมนตK.Warawut DataSet 38
  • 39. การเขาถ!งเรคอรดในอกเทเบ,ลหน!งท สมพนธกน (ตอ) ● เนองจากเรคอรดใน Child Table ทสมพนธกบเร คอรดหน!งๆ ใน Parent Table อาจมไดหลาย เรคคอรด ดงน&นเมธอด GetChildRows จ!งให ผลลพธเปนอารเรยของออบเจกต DataRow Dim childRows( ) As DataRow childRows = ds.Table(“Cust”).Rows(0).GetChildRows(“CustomerOrders”) For Each row As DataRow In childRows ในแตละรอบ ต-วแปร row จะอางองไปย-งแตละเรคอร#ดในเทเบล Orders ทส-มพ-นธ#ก-บเรคอร#ดแรก ในเทเบล Customers NextK.Warawut DataSet 39
  • 40. การเขาถ!งเรคอรดในอกเทเบ,ลหน!งท สมพนธกน (ตอ) ● ในทางกลบกนเราสามารถเขาถ!งเรคอรดใน Parent Table ทสมพนธกบเรคอรดหน!งๆ ใน Child Table ได เชนเดยวกน และโดยทวไปเรคอรดดงกลาวใน Parent Table จะมเพยงเรคอรดเดยว ● เมธอดทใชเพอการน&คอ GetParentRow (ไมม s) ซ!ง ใหผลลพธเปนออบเจกต DataRowDim row As DataRow = ds.Table(“Ord”).Rows(0).GetParentRow(“CustomerOrders”)TextBox1.Text = row(“CompanyName”) K.Warawut DataSet 40
  • 41. Example: DataRelation ProjectK.Warawut DataSet 41
  • 42. Contact us Mr.Warawut Khangkhan● Social Media: http://www.facebook.com/awarawut (Profile) http://www.facebook.com/AjWarawut (Learning) http://twitter.com/awarawut● Web Site: http://awarawut.blogspot.com● E-Mail: awarawut@hotmail.com warawut_kha@dusit.ac.th● Mobile: 083-0698-410