มีหนังสือเล่มไหน อธิบายการใช้งานDataset Schema,Bindingsource และการทำงานกับDatagridviewบ้าง

กระทู้คำถาม
โปรเจคบริษัทที่ผมทำอยู่เขาใช้เฟรมเวิร์ค .Net โดยใช้Datasourceมาเป็นตัวกลางระหว่างโปรแกรมกับDB
ตามภาพ


มันค่อนข้างสะดวก แค่เราใส่Query SELECT * FROM  มันก็จะสร้างฟังก์ชั่นพื้นฐานให้อัติโนมัติ เช่น Update,Insert,Delete,Rollbackให้เอง

สมัยเรียนไม่เคยได้ยินมาก่อน ไม่รู้จักว่ามันคืออะไร Datatable, TableAdapter , Bingdingsource
หาหนังสืออ่านก็ไม่เจอเล่มไหนที่อธิบายวิธีใช้เกี่ยวกับมัน? หนังสือ .Netส่วนใหญ่ก็อธิบายแค่Syntaxทั่วไป พอถึงหัวข้อเชื่อมต่อกับDatabase
ส่วนใหญ่จะการเขียนSQLในโค้ด.VB แล้วค่อยไปเรียก cmd.ExecuteNonQuery()
พอติดปัญหาสักอย่างนึง แล้วด้วยการที่มันเป็นUIในรูปแบบDiagram (น่าจะเรียกว่าDataset Schema ที่สร้างจากXML) มันยิ่งไม่รู้ว่าจะค้นในGoogleยังไง?
แปะรูปถามในStackoverflowก็ได้คำตอบมาเป็นโค้ด เช่น
Dim table1 As DataTable = New DataTable("patients")
table1.Columns.Add("name")
table1.Columns.Add("id")
table1.Rows.Add("sam", 1)
table1.Rows.Add("mark", 2)


แม้ตอนนี้ผมจะเข้าใจระบบDataset Schema ของVisual Studio บ้างแล้ว
แต่ก็รู้ไม่เต็ม100% มันมีบางอย่างที่ต้องเข้าใจให้ลึกเกี่ยวกับขอบเขตการทำงานของมัน
อย่างเช่น

-ฟิล์ดที่มีRelation 2 เส้น มันจะเลือกเส้นไหน?
-การใช้TableAdapter ต้องFill Datatableไหนก่อนหลัง มันมีเงื่อนไขของมัน ไม่งั้นerror
-Datagridview,Datagrid ต่างกันยังไง?
-คำว่าDirtyในความหมายของDatatableมันคืออะไร?
-Begin Edit,End Edit เห็นบางคนก็ใช้ บางคนก็ไม่ใช้ มันมีผลยังไง?
-ComboboxในDatagridview ส่วนDatamember.Valueต้องตรงกับ ValueของCellนั้นๆซึ่งถูกBindingsourceโดยDatatable ไม่งั้นค่าไม่ขึ้น
-Binding Datatbleเข้ากับDatagridviewแล้วลองEditค่า แต่พอGet StateของDatatableทำไม ไม่เป็นModified?
-แม้ในQueryไม่ได้Selectฟิล์ดนั้นขึ้นมา ก็สามารถเอาค่าของฟิล์ดของDatatable B มาโชว์ในฟิล์ดของDatatable Aได้ จากRelation


ทุกครั้งที่ผมเจอปัญหา ผมทำได้แค่Searchเพื่อแก้ให้มันผ่านๆ แต่ไม่เข้าใจพื้นฐานของมันเลย
มีคำถามอีกเยอะที่ผมไม่เข้าใจเกี่ยวกับมัน? ผมจะต้องไปหาอ่านได้ที่ไหน? หนังสืออะไร ?เว็บไหน?
ผมคิดว่าถ้าเราใช้เป็นมันจะสะดวกมากๆ

(อีกหนึ่งคำถามต่อเนื่องจากคำถามทจากหัวกระทู้)
ผมเคยไปทำโปรเจคJava  สิ่งที่ทีมJavaพยายามทำก็คือ สร้างClass ObjectแทนDatatable โดยที่แต่ละAttributeของObjectนั้นก็แทนDatacolumn
แล้วก็Return ออกมาเป็นArrayของObjectนั้น แทนDatarow(Records)
ผมก็เลยนึกสงสัยขึ้นมาอีกว่า  แพลตฟอร์มอื่นมันมีระบบDatasourceเหมือนกับ Dot Net รึเปล่า?  มีDatatableมารับResultจากการQueryมั้ย?
แล้วโดยทั่วๆไป เขาใช้วิธีไหนในการพักข้อมูลจากDatabase
แก้ไขข้อความเมื่อ
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่