1 / 37

การเชื่อมต่อฐานข้อมูลด้วย ADO.NET ( VB.NET )

การเชื่อมต่อฐานข้อมูลด้วย ADO.NET ( VB.NET ). เอกสารสำหรับ การเรียนใน สัปดาห์ที่ 7. อ. นัฐพงศ์ ส่งเนียม http://www.siam2dev.com xnattapong@hotmail.com xnattapong@yahoo.com. Agenda. โครงสร้างการทำงาน คลาสใน ADO.NET เปรียบเทียบ Dataset กับ RecordSet ใน ADO

lok
Download Presentation

การเชื่อมต่อฐานข้อมูลด้วย ADO.NET ( VB.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. การเชื่อมต่อฐานข้อมูลด้วย ADO.NET( VB.NET ) เอกสารสำหรับ การเรียนใน สัปดาห์ที่ 7 อ. นัฐพงศ์ ส่งเนียม http://www.siam2dev.com xnattapong@hotmail.com xnattapong@yahoo.com

  2. Agenda • โครงสร้างการทำงาน • คลาสใน ADO.NET • เปรียบเทียบ Dataset กับ RecordSet ใน ADO • Namespace ที่ใช้งานกับฐานข้อมูล

  3. โครงสร้างการทำงานใน ADO.NET

  4. คลาสใน ADO.NET .NET Data Provider DataSet Connection Data Adapter Transaction DataTableCollection Select Command DataTable Command Insert Command DataRowCollection Parameter Update Command DataColumncollection DataReader ConstraintCollection Delete Command DataRelationCollection Data Base XML

  5. คลาสใน ADO.NET • สามารถแบ่งออกเป็น 2 กลุ่ม ดังนี้ • กลุ่มที่ 1 เป็นกลุ่มคลาสที่ทำงานร่วมกับฐานข้อมูลแบบเปิดการเชื่อมต่อ (connected database) • กลุ่มที่ 2 เป็นกลุ่มคลาสที่ทำงานร่วมกับฐานข้อมูลแบบกาตัดการเชื่อมต่อ (disconnected database)

  6. กลุ่มที่ 1 เป็นกลุ่มคลาสที่ทำงานร่วมกับฐานข้อมูลแบบเปิดการเชื่อมต่อ (connected database) • สามารถแยกออกเป็น 2 กลุ่มย่อยตามประเภทของ Data Provider ได้ดังนี้ • SQL Server .NET Data Provider • OLEDB .NET Data Provider

  7. กลุ่มที่ 2 เป็นกลุ่มคลาสที่ทำงานร่วมกับฐานข้อมูลแบบกาตัดการเชื่อมต่อ (disconnected database) • การทำงานใน Layer แรก ซึ่งเป็นส่วนที่ทำงานแบบเชื่อต่อฐานจ้อมลตลอดเวลานั้นเหมาะกับการทำงานที่มีปริมาณข้อมูลไม่มากนักและการประมวลผลไม่ซับซ้อนจนทำให้สิ้นเปลื้องหน่วยความจำและทรัพยากรอื่น ๆ ของคอมพิวเตอร์ มากเกินไป โดยจะประกอบไปด้วยคลาสต่าง ๆ ดังต่อไปนี้ • คลาส Connection • คลาส Command • คลาส Data Reader • คลาส DataAdapter • คลาส DataSet

  8. ติดต่อฐานข้อมูลด้วย ADO.NET • ในการติดต่อและการจัดการกับฐานข้อมูลใดๆ โดยทั่วไปแล้วจะมีขั้นตอนที่สำคัญดังต่อไปนี้ • ติดต่อฐานข้อมูลด้วยคลาส Connection • สร้าง Object จากคลาส Connection • เปิดการเชื่อมต่อด้วยเมธอด Open() • การแสดงข้อมูลด้วยคลาส DataReader • ประมวลผลคำสั่ง SQL ด้วยคลาส Command • ทำงานแบบปิดการเชื่อมต่อด้วย DataSet และ DataAdapter • ปิดการเชื่อมต่อด้วยเมธอด Close()

  9. ติดต่อฐานข้อมูลด้วยคลาส Connection • ก่อนที่เราจะเข้าถึงและจัดการฐานข้อมูล เราจะต้องสร้างการติดต่อกับฐานข้อมูลก่อน สำหรับภาษา VB.NET จะใช้คำสั่ง Imports เพื่ออ้างอิงถึงเนมสเปซไว้บรรทัดสุดของโปรแกรมเพื่อเรียกใช้คลาสที่เหมาะสมกับประเภทของฐานข้อมูล 1. ตัวอย่างการอ้างอิงถึงเนมสเปซเพื่อเรียกใช้คลาสในกลุ่ม OLE DB .NET Data Provider

  10. ติดต่อฐานข้อมูลด้วยคลาส Connection • สร้าง Object จากคลาส Connection รูปแบบที่ 1 Dim ObjConn as Oledbconnection ObjConn = new Oledbconnection(strconn) 2. รูปแบบที่ 2 Dim ObjConn as New Oledbconnection(strconn) โดย ObjConn หมายถึง ออบเจ็กต์ที่สร้างจากคลาส connection strconn หมายถึง connection string หรือ ประโยคข้อความที่ประกอบไปด้วย อาร์กิวเมนต์ต่าง ๆที่ใช้ติดต่อฐานข้อมูล

  11. ติดต่อฐานข้อมูลด้วยคลาส Connection • ตัวอย่างการสร้าง Object จากคลาส Connection 2. ต.ย. Dim MyConn as Oledbconnection Dim strconn as string=“Provider=Microsoft.jet.OLEDB.4.0; Data source=c:\MyDB.MDB” MyConn = new Oledbconnection(strconn) โดย MyConn หมายถึง ออบเจ็กต์ที่สร้างจากคลาส connection strconn หมายถึง connection string หรือ ประโยคข้อความที่ประกอบไปด้วย อาร์กิวเมนต์ต่าง ๆที่ใช้ติดต่อฐานข้อมูล

  12. ติดต่อฐานข้อมูลด้วยคลาส Connection • เปิดการเชื่อมต่อกับฐานข้อมูลด้วยเมธอด Open() 3. ต.ย. Dim MyConn as Oledbconnection Dim strconn as string=“Provider=Microsoft.jet.OLEDB.4.0; Data source=c:\MyDB.MDB” MyConn = new Oledbconnection(strconn) MyConn.Open()

  13. ติดต่อฐานข้อมูลด้วยคลาส Connection • ปิดการเชื่อมต่อกับฐานข้อมูลด้วยเมธอด Close() 4. ต.ย. Dim MyConn as Oledbconnection Dim strconn as string=“Provider=Microsoft.jet.OLEDB.4.0; Data source=c:\MyDB.MDB” MyConn = new Oledbconnection(strconn) MyConn.Open() ‘ ทำงาน กับ ฐานข้อมูล ‘ เมื่อต้องการยกเลิกการทำงาน กับ ฐานข้อมูล MyConn.Close()

  14. ติดต่อฐานข้อมูลด้วยคลาส Connection • แสดงข้อมูลด้วยคลาส DataReader สร้างออบเจ็คจ์จากคลาส DataReader Dim ObjdtReader as OledbDataReader 5. ประมวลผลด้วยคำสั่ง ExecuteReader() ObjdtReader= ObjCmd.ExecuteReader() เข้าถึงข้อมูลแตล่ะเรคคอร์ดด้วเมธอด Read() ObjdtReader.Read() โดย ObjdtReader หมายถึง ออบเจ็กต์ที่สร้างจากคลาส DataReader ObjCmd หมายถึง ออบเจ็กต์ที่สร้างจากคลาส Command

  15. ติดต่อฐานข้อมูลด้วยคลาส Connection • แสดงข้อมูลด้วยคลาส DataReader เข้าถึงข้อมูลแตล่ะฟิลด์ด้วย พร็อพเพอร์ตี้ Item() แบบที่ 1 ObjdtReader.Item(field) แบบที่ 2 ObjdtReader(field) 5. โดย ObjdtReader หมายถึง ออบเจ็กต์ที่สร้างจากคลาส DataReader field หมายถึง ชื่อฟิลด์หรือสำดับที่ของฟิลด์ในเรคคอร์ดนั้น ( 0.. n-1)

  16. ติดต่อฐานข้อมูลด้วยคลาส Connection • ตัวอย่างการแสดงข้อมูลด้วยคลาส DataReader 5.1 Dim MyConn as Oledbconnection Dim strconn as string=“Provider=Microsoft.jet.OLEDB.4.0; Data source=c:\MyDB.MDB” MyConn = new Oledbconnection(strconn) MyConn.Open() ‘ ทำงาน กับ ฐานข้อมูลโดยใช้ DataReader Dim MyReader as OleDbDataReader Dim MyCmd as OleDbCommand = new OleDbCommand(“Select * From Customer”,MyConn) MyReader = MyCmd.ExecuteReader() MyReader.Read() Lb1.Text = MyReader.Item(“CusID”) Lb2.Text = MyReader.Item(“CusName”) Lb3.Text = MyReader.Item(“CusAddress”) ‘ เมื่อต้องการยกเลิกการทำงาน กับ ฐานข้อมูล MyReader.Close() MyConn.Close()

  17. อ่านข้อมูลจากฐานข้อมูลด้วย DataReader Lb1.Text = MyReader.Item(“CusID”) Lb2.Text = MyReader.Item(“CusName”) Lb3.Text = MyReader.Item(“CusAddress”)

  18. ติดต่อฐานข้อมูลด้วยคลาส Connection • ตัวอย่างการแสดงข้อมูลด้วยคลาส DataReader 5.2 Dim MyConn as Oledbconnection Dim strconn as string=“Provider=Microsoft.jet.OLEDB.4.0; Data source=c:\MyDB.MDB” MyConn = new Oledbconnection(strconn) MyConn.Open() ‘ ทำงาน กับ ฐานข้อมูลโดยใช้ DataReader Dim MyReader as OleDbDataReader Dim MyCmd as OleDbCommand = new OleDbCommand(“Select * From Customer”,MyConn) MyReader = MyCmd.ExecuteReader() While MyReader.Read() Lb1.Text &= MyReader.Item(“CusID”) & vbcrlf Lb2.Text &= MyReader.Item(“CusName”) & vbcrlf Lb3.Text &= MyReader.Item(“CusAddress”) & vbcrlf End While ‘ เมื่อต้องการยกเลิกการทำงาน กับ ฐานข้อมูล MyReader.Close() MyConn.Close()

  19. ติดต่อฐานข้อมูลด้วยคลาส Connection • ประมวลผลคำสั่งด้วยคลาส Command 6. แบบที่ 1 Dim objCmd as OleDbCommand objCmd = New OleDbCommand(sqlCmd,MyConn) แบบที่ 2 Dim objCmd as OleDbCommand = New OleDbCommand(sqlCmd,MyConn) โดย ObjCmd หมายถึง ออบเจ็กต์ที่สร้างจากคลาส Command sqlCmd หมายถึง ประโยคคำสั่ง SQL MyConn หมายถึง ออบเจ็กต์ที่สร้างจากคลาส connection

  20. ติดต่อฐานข้อมูลด้วยคลาส Connection • ประมวลผลคำสั่งด้วยเมธอด ExecuteNonQuery() • เป็นเมธอดที่ใช้ประมวลผลคำสั่ง เช่น เพิ่มเรคคอร์ดใหม่ ลบเรคคอร์ด แก้ไขข้อมูล โดยไม่ส่งผลลัพธ์ใด ๆ กลับมา (Non-Query) 6. objCmd.ExecuteNonQuery() โดยที่ ObjCmd หมายถึง ออบเจ็กต์ที่สร้างจากคลาส Command

  21. ติดต่อฐานข้อมูลด้วยคลาส Connection • ประมวลผลคำสั่งด้วยเมธอด ExecuteNonQuery() • กรณีส่งผลลัพธ์กลับคืนมาเป็นจำนวนเรคอร์ดที่ถูกประมวลผล 6.1 varRecAffected = objCmd.ExecuteNonQuery() โดยที่ ObjCmd หมายถึง ออบเจ็กต์ที่สร้างจากคลาส Command varRecAffected หมายถึง ตัวแปรที่จะใช้เก็บจำนวนเรคอร์ดที่ถูกประมวลผล

  22. ติดต่อฐานข้อมูลด้วยคลาส Connection • ประมวลผลคำสั่งด้วยเมธอด ExecuteScalar() • เป็นเมธอดที่ส่งผลลัพธ์ที่ได้จากการประมวผลคำสั่ง SQL กลับคืนมาเพียงค่าเดียวเช่น ผลลัพธ์ที่ได้จากการประมวลผลฟังก์ชั่นสรุป (Aggregate Function) 6.2 varResult = objCmd.ExecuteScalar() โดยที่ varResult หมายถึงตัวแปรที่ใช้เก็บผลลัพธ์ที่ได้จากการประมวลผลกลุ่มเรคอร์ดเช่น ค่าที่ได้จากฟังก์ชั่น sum,count,average เป็นต้น ObjCmd หมายถึง ออบเจ็กต์ที่สร้างจากคลาส Command

  23. ทำงานแบบ disconnected databaseด้วย DataSet และ DataAdapter • สร้างออบเจ็กต์จากคลาส DataAdapter 7. Dim objdtAdapter As OleDbDataAdapter objdtAdapter = New OleDbDataAdapter(sqlCmd,objConn) โดยที่ objdtAdapter หมายถึงออบเจ็กต์ที่สร้างจากคลาส DataAdapter objConn หมายถึงออบเจ็กต์ที่สร้างจากคลาส Connection sqlCmd หมายถึง ประโยคคำสั่งที่นำมาสร้างตารางใน dataset

  24. ทำงานแบบ disconnected databaseด้วย DataSet และ DataAdapter • สร้างออบเจ็กต์จากคลาส DataSet 7.1 Dim objdtSet As DataSet objdtSet = new DataSet โดยที่ objdtSet หมายถึงออบเจ็กต์ที่สร้างจากคลาส DataSet

  25. ทำงานแบบ disconnected databaseด้วย DataSet และ DataAdapter • นำข้อมูลมาไว้ใน DataSet ด้วยเมธอด Fill() 7.2 objdtAdapter.Fill(objdtSet,dataname) โดยที่ objdtSet หมายถึงออบเจ็กต์ที่สร้างจากคลาส DataSet

  26. VB4 user id=sa; password=123 DataAdapter Fill Update UpdateCommand Disconnected Model DataSet Connection SelectCommand CommandBuilder

  27. DataSet and DataAdapter Objects DataSet DataAdapter Data Source DataTable SelectCommand Fill CommandBuilder Update Connection UpdateCommand DataAdapter DataTable SelectCommand Fill CommandBuilder Update UpdateCommand

  28. Retriving data from DataSet Table Name Column Name TextBox1.Text = DS.Tables("Customer").Rows(2)("Name") Row number DataSet Customer Product

  29. DataRow DataColumn • Delete an existing row DataRow DataTable DataRelation DataSet1.Tables("TableName").Rows({number}) DataSet1.Tables("TableName").Rows({number}).Delete

  30. กรณีศึกษาระบบจองห้องพักโรงแรม AsiaAirport • ข้อมูลห้องพัก (TblRoom) • ประเภทห้องพัก (TblRoomType) • ข้อมูลลูกค้า (TblCustomer) • ข้อมูลพนักงานโรงแรม (TblEmployee) • ข้อมูลการจองห้องพัก (TblReservation) • ข้อมูลสมาชิก (TblMember)

  31. E-R Diagram ประเภท เป็น จอง ลูกค้า ห้องพัก พนักงาน

  32. ออกแบบตาราง TblCustomer • ข้อมูลลูกค้าประกอบไปด้วยรายละเอียดดังต่อไปนี้ • รหัสลูกค้า • คำนำหน้า • ชื่อ - นามสกุลลูกค้า • ที่อยู่ • เบอร์โทร • เพศ • อาชีพ

  33. ต.ย. การจองห้องพักผ่านทางเว็บไซต์

  34. ป้อนข้อมูลลงในตาราง TblCustomer ป้อนข้อมูลตัวอย่างลูกค้าโดยมีรายละเอียดดังต่อไปนี้

  35. ออกแบบตาราง TblMember • ข้อมูลสมาชิกประกอบไปด้วยรายละเอียดดังต่อไปนี้ • รหัสสมาชิก • ชื่อผู้ใช้ระบบ • รหัสผ่าน • ชื่อเต็ม • ประเภทผู้ใช้งาน • อีเมล์

  36. ป้อนข้อมูลลงในตาราง TblMember ป้อนข้อมูลตัวอย่างลงในตารางข้อมูลสมาชิก (TblMember)โดยมีรายละเอียดดังต่อไปนี้

  37. ออกแบบหน้าต่าง Login LbUserName LbPassword TxtUserName TxtPassword

More Related