1 / 37

Lecture 7 ADO.NET

Lecture 7 ADO.NET. ADO.NET.

tyrell
Download Presentation

Lecture 7 ADO.NET

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Lecture 7 ADO.NET

  2. ADO.NET ADO.NET เป็นเทคโนโลยีที่พัฒนาขึ้นมาใช้ใน .NET เพื่อทำหน้าที่เช่นเดียวกับ ADO ซึ่งใช้กับ ASP นั่นก็คือ ใช้ติดต่อกับแหล่งข้อมูลโดยเฉพาะฐานข้อมูลซึ่งมีงานมากจนกล่าวได้ว่าทุก Application ที่ต้องใช้ข้อมูลต่างก็เก็บข้อมูลไว้ในฐานข้อมูลด้วยกันทั้งสิ้น    ถึงแม้ว่าขั้นตอนในการดึงข้อมูลจากแหล่งข้อมูลมาใช้จะคล้ายกันก็ตาม แต่ ADO.NET ก็แตกต่างจาก ADO เป็นอย่างมากทั้งในแง่ของโครงสร้าง Object และรูปแบบการทำงาน โดยสิ่งที่ทำให้ ADO.NET แตกต่างจาก ADO ที่เด่น ๆ ก็มีดังนี้

  3. 1.เพิ่มประสิทธิภาพในการติดต่อกับ SQL Serverโดยเฉพาะ                ใน ADO นั้นการติดต่อกับฐานข้อมูลไม่ว่าจะเป็น MS Access หรือ SQL Server   ต่างก็ใช้วิธีเดียวกันโดยแตกต่างกันเล็กน้อย ที่การกำหนดชื่อ Providerซึ่งเป็นตัวกลางที่ทำหน้าที่ติดต่อกับฐานข้อมูลให้เรา                 แต่สำหรับ ADO.NET    Microsoft ได้พัฒนา Namespace ขึ้นมาเพื่อติดต่อกับ SQL Sever โดยเฉพาะ ซึ่งclass ต่าง ๆ ที่อยู่ใน Namespace ดังกล่าวจะติดต่อกับ SQL Server  ผ่าน SQL Server API ของ SQL Server เพื่อให้ได้รับประสิทธิภาพที่ดีที่สุด

  4. 2.ผ่าน Firewallได้อย่างไม่มีปัญหา      เนื่องจากข้อมูลใน ADO.NET มีรูปแบบเป็น XML  ซึ่งจะถูกส่งผ่าน Internet ด้วยวิธีเดียวกับการส่ง Web page ในInternet ดังนั้นข้อมูลของเราจึงสามารถผ่าน Firewall  ได้อย่างสบาย ๆ เพราะระบบที่ติดตั้ง Firewall เพื่อป้องกันผู้บุกรุกจะอนุญาตให้ข้อมูลแบบเดียวกับ Web page ผ่านเข้าออกได้อยู่แล้ว

  5. 3.สนับสนุน XML                 ADO.NET ถูกพัฒนาขึ้นมาโดยมี XMLเป็นรูปแบบที่นำขึ้นมาจากแหล่งข้อมูล เราจึงสามารถนำข้อมูลดังกล่าวไปใช้แลกเปลี่ยนกับคอมพิวเตอร์เครื่องอื่น ๆ ได้แม้จะใช้ระบบ ปฏิบัติการคนละตัวหรือแม้กระทั่งคนละPlatform โดยเราสามารถสร้างเอกสาร XML ได้จากข้อมูลที่อยู่นั่นเอง                 ในทางตรงกันข้ามเราก็สามารถนำข้อมูลจากเอกสาร XML  มาเก็บลงฐานข้อมูลได้เช่นกัน ถึงแม้ว่า ADO.NET จะถูกพัฒนาขึ้นมาใหม่ให้ทำงานกับข้อมูลในรูปแบบ XML แต่เราก็ยังสามารถทำงานกับ Componentเก่า ๆ ที่ส่งข้อมูลเป็น ADO Recordset ได้เหมือนเดิม และยังสามารถสร้างเอกสาร XML จากข้อมูลเหล่านั้นได้อีกด้วย

  6. การพัฒนาระบบงานด้านฐานข้อมูลโดยอาศัยออบเจ็กต์ ADO.NET มี 2 ทางเลือก ได้แก่ • วิธีที่ 1 การเรียกใช้งานกลุ่มออบเจ็กต์ ADO.NET ในขณะออกแบบ(Design Time) • วิธีที่ 2 การเรียกใช้งานกลุ่มออบเจ็กต์ ADO.NET โดยการเขียนโดยตรง (Rum time) ADO.NET

  7. OleDbConnection SqlConnection OleDbDataAdapter SqlDataAdapter SqlCommand OleDbCommand OleDbDataReader SqlDataReader DataSet กลุ่มออบเจ็กต์หลักของสถาปัตยกรรม ADO.NET

  8. OLEDB Data Providerทำหน้าที่เข้าถึงข้อมูลในฐานข้อมูล ใช้งานร่วมกับฐานข้อมูล MS Access SQL Server Data Providerทำหน้าที่เข้าถึงข้อมูลในฐานข้อมูล ใช้งานร่วมกับฐานข้อมูล MS SQL Server ออบเจ็กต์ที่ใช้เก็บผลการทำงาน หน้าที่ของแต่ละออบเจ็กต์

  9. กลุ่มออบเจ็กต์ OLEDB Data Provider อยู่ในเนมสเปซ System.Data.OleDb • กลุ่มออบเจ็กต์SQL Server Data Provider อยู่ในเนมสเปซSystem.Data.SqlClient • ออบเจ็กต์ Data Setอยู่ในเนมสเปซ System.Data Namespace ที่เรียกใช้งาน

  10. กลุ่มออบเจ็กต์OLEDB Data Provider WinForm Apps WebForm Apps ส่วนแสดงผล User Interface -UI DataReader DataSet DataTable DataTable OleDb.NET Data Provider OleDb Command OleDb DataAdapter Database OleDbConnection

  11. กลุ่มออบเจ็กต์ SQL Server Data Provider WinForm Apps WebForm Apps ส่วนแสดงผล User Interface -UI DataReader DataSet DataTable DataTable SQL Server.NET Data Provider Sql Command Sql DataAdapter Database SqlConnection

  12. อยู่ในเนมสเปซ System.Data.OleDb • OleDbConnection class • OleDbCommand class • OleDbDataAdapter class • OleDbDataReader class ขั้นตอนการติดต่อฐานข้อมูลโดยใช้ออบเจ็กต์กลุ่มOLEDB

  13. OleDbConnection class ทำหน้าที่ในการเปิดการเชื่อมต่อกับฐานข้อมูล Property ที่สำคัญ

  14. OleDbConnection class(ต่อ) Constructor Method ที่จำเป็น

  15. Dim conStr As String = “Provider = Microsoft.JET.OleDb.4.0; Data Source=ตำแหน่งไฟล์ฐานข้อมูล”; User =ชื่อผู้ใช้ ; Password = รหัสผ่าน” Dim connAs New OleDbConnection() With conn If .State = ConnectionState.OpenThen .close() ConnectionString = conStr .Open() End With OleDbConnection class(ต่อ)

  16. OleDbCommandclass ทำหน้าที่กำหนดคำสั่ง SQL หรือ StoreProcedure ที่จะประมวลผลในฐานข้อมูล Property ที่สำคัญ

  17. OleDbCommand class(ต่อ) Constructor

  18. Dim cmd As New OleDbCommand() With cmd .Connection = conn .CommandText = “Select * From Products” .CommandTimeOut = 90 .CommandType = CommandType.Text End With OleDbCommand class(ต่อ)

  19. OleDbDataAdapterclass ทำหน้าที่เก็บชุดคำสั่งและการเชื่อมต่อฐานข้อมูลที่จะใช้ในการกำหนดข้อมูลให้แก่ DataSet และ update Data Source Constructor

  20. OleDbDataAdapter class(ต่อ) Property ที่จำเป็น Method ที่จำเป็น

  21. Dim ds As New DataSet() Dim da As New OleDbDataAdapter(“Select * from Products” , conn) da.Fill(ds , “Products”) OleDbDataAdapter class(ต่อ)

  22. OleDbDataReader class ทำหน้าที่อ่านข้อมูลแบบ Forward-only ของ แถวข้อมูลจาก Data Source (อ่านครั้ง 1 เรคคอร์ด) Constructor

  23. OleDbDataReader class(ต่อ) Property ที่จำเป็น Method ที่จำเป็น

  24. Dim sql As String = “Select * from Products where ProductId = 77” Dim com As New OleDbCommand() Dim dr As New OleDbDataReader() Dim dt As New DataTable() OleDbDataReader class(ต่อ)

  25. DataSet class ทำหน้าที่เก็บชุดข้อมูลที่ได้จากออบเจ็กต์ OleDbDataAdapter Constructor

  26. DataSet class(ต่อ) Property ที่จำเป็น Method ที่จำเป็น

  27. ออบเจ็กต์ DataReader และ DataSet ทำหน้าที่ในการเก็บข้อมูลที่อ่านออกมาจากแหล่งข้อมูล • เช่น จากตารางข้อมูลโดยอาศัยชุดคำสั่ง SQL หรือ จากแหล่งข้อมูล XML เป็นต้น DataReadervsDataSet

  28. ออบเจ็กต์ DataReader อ่านข้อมูลทีละ 1 เรคคอร์ดออกมา มีสถานะการเคลื่อนที่ไปข้างหน้าอย่างเดียว (Forward-only) ส่วนใหญ่เกิดจากการรันคำสั่ง SQL ของ ออบเจ็กต์ Command • ตัวอย่างเช่น คิวรีข้อมูลออกมาเป็นชุด โดยไม่ต้องการอ่านข้อมูลทั้งหมดมาเก็บไว้ที่หน่วยความจำ(RAM) แต่ต้องการอ่านข้อมูลมาใช้งานทีละ 1 เรคคอร์ด DataReadervsDataSet(ต่อ)

  29. ออบเจ็กต์ DataSet อ่านข้อมูลทั้งหมดที่คิวรีด้วยคำสั่ง SQL มาเก็บไว้ในหน่วยความจำ จากนั้นจึงนำไปใช้ในรูปแบบต่าง ๆ ตามต้องการ • ดังนั้น จึงสามารถจัดการกับข้อมูลที่เก็บอยู่ใน DataSetได้มากกว่าใน DataReader DataReadervsDataSet(ต่อ)

  30. ออบเจ็กต์ DataReader เกิดจากสถาปัตยกรรม Connectedหมายถึง มีการเชื่อมต่อกับฐานข้อมูลตลอดเวลา ดังนั้นเมื่อใช้งานออบเจ็กต์ DataReaderเสร็จแล้ว ต้องควบคุมการเปิด-ปิด ออบเจ็กต์ DataReaderเองทั้งหมด เพราะไม่สามารถเปิดออบเจ็กต์ DataReaderได้เกิน 1 ครั้งในเวลาเดียวกัน • ออบเจ็กต์ DataSetเกิดจากสถาปัตยกรรม Disconnectedหมายถึง เมื่อคิวรีข้อมูลมาเก็บไว้ใน DataSetแล้ว จะตัดการเชื่อมต่อกับแหล่งข้อมูลโดยทันที DataReadervsDataSet(ต่อ)

  31. เป็นการแสดงข้อมูลจากฐานข้อมูลผ่านทางคอนโทรลต่าง ๆ มี 2 แบบ คือ • Simple Binding Dataเป็นการแสดงข้อมูลออกมาจากตารางเดียว ไม่มีการเชื่อมโยงกับตารางอื่น ๆ • Complex Binding Dataเป็นการแสดงข้อมูลที่เกิดจากเชื่อมโยงข้อมูลมาจากตารางอื่น ๆ (ลักษณะแบบ LookUp Table) การผูกติดข้อมูล (Binding Data)

  32. การใช้งานจะสร้างออบเจ็กต์ของ BindingSource Property ที่จำเป็น การผูกติดข้อมูล (Binding Data)

  33. การใช้งานจะสร้างออบเจ็กต์ของ BindingSource • ตัวอย่าง Dim bs As New BindingSource() Property ที่จำเป็น การผูกติดข้อมูล (Binding Data)

  34. Method ที่จำเป็น การผูกติดข้อมูล (Binding Data)

  35. Method ที่จำเป็น การผูกติดข้อมูล (Binding Data)

  36. Lab1 . ให้นักศึกษาเชื่อมโยงตาราง Productsและให้เขียนโค๊ดแทรกแถวใหม่,ค้นหา,แก้ไข และ ลบ ข้อมูล

  37. Thank You…

More Related