37
1 กกกกกกกกกกกกกกกกกกกกกกกกก กกกกกกกกกกกกกกกกกกกกกกกกก ADO.NET ADO.NET ( VB.NET ) ( VB.NET ) . . อออออออ ออออออออ อออออออ ออออออออ http://www.siam2dev.com http://www.siam2dev.com [email protected] [email protected] [email protected] [email protected] กกกกกกกกกกกกก กกกกกกกกกกกกก กกกกกกกกกก กกกกกกกกกก กกกกกกกกกก กกกกกกกกกก 7 7

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

  • Upload
    lok

  • View
    62

  • Download
    1

Embed Size (px)

DESCRIPTION

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

Citation preview

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

11

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

ออ. . นั�ฐพงศ์� ส่งเนั�ยม นั�ฐพงศ์� ส่งเนั�ยมhttp://www.siam2dev.comhttp://[email protected]@[email protected]@yahoo.com

เอกสารส�าหร�บ การเร�ยนเอกสารส�าหร�บ การเร�ยนใน ใน

ส�ปด้าห�ที่�� ส�ปด้าห�ที่�� 77

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

22

AgendaAgenda

โครงส่ร�างการทำ�างานัโครงส่ร�างการทำ�างานั คลาส่ในั คลาส่ในั ADO.NETADO.NET เปร�ยบเทำ�ยบ เปร�ยบเทำ�ยบ Dataset Dataset ก�บ ก�บ RecordSet RecordSet ในั ในั ADOADO

Namespace Namespace ทำ��ใช้�งานัก�บฐานัข้�อม�ลทำ��ใช้�งานัก�บฐานัข้�อม�ล

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

33

โครงส่ร�างการทำ�างานัในั โครงส่ร�างการทำ�างานัในั ADO.NETADO.NET

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

44

คลาส่ในั คลาส่ในั ADO.NETADO.NET

.NET Data Provider

Data Adapter

Select Command

Insert Command

Update Command

Delete Command

ConnectionTransaction

CommandParameter

DataReader

Data BaseXMLXML

DataSet

DataTableCollection

DataTableDataRowCollection

DataColumncollection

ConstraintCollection

DataRelationCollection

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

55

คลาส่ในั คลาส่ในั ADO.NETADO.NET

ส่ามารถแบงออกเป!นั ส่ามารถแบงออกเป!นั 2 2 กล"ม ดั�งนั�$ กล"ม ดั�งนั�$ กล"มทำ�� กล"มทำ�� 1 1 เป!นักล"มคลาส่ทำ��ทำ�างานัรวมก�บฐานัข้�อม�ลเป!นักล"มคลาส่ทำ��ทำ�างานัรวมก�บฐานัข้�อม�ล

แบบเป&ดัการเช้'�อมต่อ แบบเป&ดัการเช้'�อมต่อ (connected database)(connected database) กล"มทำ�� กล"มทำ�� 2 2 เป!นักล"มคลาส่ทำ��ทำ�างานัรวมก�บฐานัข้�อม�ลเป!นักล"มคลาส่ทำ��ทำ�างานัรวมก�บฐานัข้�อม�ล

แบบกาต่�ดัการเช้'�อมต่อ แบบกาต่�ดัการเช้'�อมต่อ (disconnected database)(disconnected database)

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

66

กล"มทำ�� กล"มทำ�� 1 1 เป!นักล"มคลาส่ทำ��ทำ�างานัรวมก�บเป!นักล"มคลาส่ทำ��ทำ�างานัรวมก�บ ฐานัข้�อม�ลแบบเป&ดัการเช้'�อมต่อ ฐานัข้�อม�ลแบบเป&ดัการเช้'�อมต่อ

(connected database)(connected database) ส่ามารถแยกออกเป!นั ส่ามารถแยกออกเป!นั 2 2 กล"มยอยต่ามประเภทำกล"มยอยต่ามประเภทำ

ข้อง ข้อง Data Provider Data Provider ไดั�ดั�งนั�$ไดั�ดั�งนั�$SQL Server .NET Data ProviderSQL Server .NET Data ProviderOLEDB .NET Data ProviderOLEDB .NET Data Provider

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

77

กล"มทำ�� กล"มทำ�� 2 2 เป!นักล"มคลาส่ทำ��ทำ�างานัรวมก�บเป!นักล"มคลาส่ทำ��ทำ�างานัรวมก�บ ฐานัข้�อม�ลแบบกาต่�ดัการเช้'�อมต่อ ฐานัข้�อม�ลแบบกาต่�ดัการเช้'�อมต่อ

(disconnected database)(disconnected database) การทำ�างานัในั การทำ�างานัในั Layer Layer แรก ซึ่-�งเป!นัส่วนัทำ��ทำ�างานัแบบเช้'�อต่อ แรก ซึ่-�งเป!นัส่วนัทำ��ทำ�างานัแบบเช้'�อต่อฐานัจ้�อมลต่ลอดัเวลานั�$นัเหมาะก�บการทำ�างานัทำ��ม�ปร0มาณฐานัจ้�อมลต่ลอดัเวลานั�$นัเหมาะก�บการทำ�างานัทำ��ม�ปร0มาณข้�อม�ลไมมากนั�กและการประมวลผลไมซึ่�บซึ่�อนัจ้นัทำ�าให�ส่0$นัข้�อม�ลไมมากนั�กและการประมวลผลไมซึ่�บซึ่�อนัจ้นัทำ�าให�ส่0$นั

เปล'$องหนัวยความจ้�าและทำร�พยากรอ'�นั ๆ ข้องคอมพ0วเต่อร� เปล'$องหนัวยความจ้�าและทำร�พยากรอ'�นั ๆ ข้องคอมพ0วเต่อร� มากเก0นัไป โดัยจ้ะประกอบไปดั�วยคลาส่ต่าง ๆ ดั�งต่อไปนั�$ มากเก0นัไป โดัยจ้ะประกอบไปดั�วยคลาส่ต่าง ๆ ดั�งต่อไปนั�$

คลาส่ คลาส่ ConnectionConnection คลาส่ คลาส่ CommandCommand คลาส่ คลาส่ Data ReaderData Reader คลาส่ คลาส่ DataAdapterDataAdapter คลาส่ คลาส่ DataSetDataSet

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

88

ต่0ดัต่อฐานัข้�อม�ลดั�วย ต่0ดัต่อฐานัข้�อม�ลดั�วย ADO.NETADO.NET

ในัการต่0ดัต่อและการจ้�ดัการก�บฐานัข้�อม�ลใดัๆ โดัยทำ��วไป ในัการต่0ดัต่อและการจ้�ดัการก�บฐานัข้�อม�ลใดัๆ โดัยทำ��วไปแล�วจ้ะม�ข้�$นัต่อนัทำ��ส่�าค�ญดั�งต่อไปนั�$แล�วจ้ะม�ข้�$นัต่อนัทำ��ส่�าค�ญดั�งต่อไปนั�$1.1. ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ ConnectionConnection

2.2. ส่ร�าง ส่ร�าง Object Object จ้ากคลาส่ จ้ากคลาส่ ConnectionConnection

3.3. เป&ดัการเช้'�อมต่อดั�วยเมธอดั เป&ดัการเช้'�อมต่อดั�วยเมธอดั Open()Open()

4.4. การแส่ดังข้�อม�ลดั�วยคลาส่ การแส่ดังข้�อม�ลดั�วยคลาส่ DataReaderDataReader

5.5. ประมวลผลค�าส่��ง ประมวลผลค�าส่��ง SQL SQL ดั�วยคลาส่ ดั�วยคลาส่ CommandCommand

6.6. ทำ�างานัแบบป&ดัการเช้'�อมต่อดั�วย ทำ�างานัแบบป&ดัการเช้'�อมต่อดั�วย DataSet DataSet และ และ DataAdapterDataAdapter

7.7. ป&ดัการเช้'�อมต่อดั�วยเมธอดั ป&ดัการเช้'�อมต่อดั�วยเมธอดั Close()Close()

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

99

ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ConnectionConnection

กอนัทำ��เราจ้ะเข้�าถ-งและจ้�ดัการฐานัข้�อม�ล เราจ้ะต่�องส่ร�างการ กอนัทำ��เราจ้ะเข้�าถ-งและจ้�ดัการฐานัข้�อม�ล เราจ้ะต่�องส่ร�างการ ต่0ดัต่อก�บฐานัข้�อม�ลกอนั ส่�าหร�บภาษา ต่0ดัต่อก�บฐานัข้�อม�ลกอนั ส่�าหร�บภาษา VB.NET VB.NET จ้ะใช้�ค�าส่��ง จ้ะใช้�ค�าส่��ง

Imports Imports เพ'�ออ�างอ0งถ-งเนัมส่เปซึ่ไว�บรรทำ�ดัส่"ดัข้องเพ'�ออ�างอ0งถ-งเนัมส่เปซึ่ไว�บรรทำ�ดัส่"ดัข้องโปรแกรมเพ'�อเร�ยกใช้�คลาส่ทำ��เหมาะส่มก�บประเภทำข้องฐานัโปรแกรมเพ'�อเร�ยกใช้�คลาส่ทำ��เหมาะส่มก�บประเภทำข้องฐานัข้�อม�ลข้�อม�ล

ต่�วอย�างการอ�างอ!งถึ#งเนมสเปซเพื่��อเร�ยกใชื่�คลาสในกล'�ม OLE DB .NET Data Provider

1.

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

1010

ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ConnectionConnection

ส่ร�าง ส่ร�าง Object Object จ้ากคลาส่ จ้ากคลาส่ ConnectionConnection

2.ร�ปแบบที่�� 1Dim ObjConn as OledbconnectionObjConn = new Oledbconnection(strconn)

ร�ปแบบที่�� 2Dim ObjConn as New Oledbconnection(strconn)

โด้ย ObjConn หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส connectionstrconn หมายถึ#ง connection string หร�อ ประโยคข้�อความที่��ประกอบไปด้�วย อาร�ก!วเมนต่�ต่�าง ๆที่��ใชื่�ต่!ด้ต่�อฐานข้�อม�ล

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

1111

ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ConnectionConnection

ต่�วอยางการส่ร�าง ต่�วอยางการส่ร�าง Object Object จ้ากคลาส่ จ้ากคลาส่ConnectionConnection2.

โด้ย MyConn หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส connectionstrconn หมายถึ#ง connection string หร�อ ประโยคข้�อความที่��ประกอบไปด้�วย อาร�ก!วเมนต่�ต่�าง ๆที่��ใชื่�ต่!ด้ต่�อฐานข้�อม�ล

ต่.ย.Dim MyConn as OledbconnectionDim strconn as string=“Provider=Microsoft.jet.OLEDB.4.0; Data source=c:\MyDB.MDB”

MyConn = new Oledbconnection(strconn)

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

1212

ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ConnectionConnection

เป&ดัการเช้'�อมต่อก�บฐานัข้�อม�ลดั�วยเมธอดั เป&ดัการเช้'�อมต่อก�บฐานัข้�อม�ลดั�วยเมธอดัOpen()Open()3.

ต่.ย.

Dim MyConn as OledbconnectionDim strconn as string=“Provider=Microsoft.jet.OLEDB.4.0; Data source=c:\MyDB.MDB” MyConn = new Oledbconnection(strconn)MyConn.Open()

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

1313

ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ConnectionConnection

ป&ดัการเช้'�อมต่อก�บฐานัข้�อม�ลดั�วยเมธอดั ป&ดัการเช้'�อมต่อก�บฐานัข้�อม�ลดั�วยเมธอดัClose()Close()4.

ต่.ย.Dim MyConn as OledbconnectionDim strconn as string=“Provider=Microsoft.jet.OLEDB.4.0; Data source=c:\MyDB.MDB” MyConn = new Oledbconnection(strconn)MyConn.Open()

‘ ที่�างาน ก�บ ฐานข้�อม�ล

‘ เม��อต่�องการยกเล!กการที่�างาน ก�บ ฐานข้�อม�ล

MyConn.Close()

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

1414

ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ConnectionConnection

แส่ดังข้�อม�ลดั�วยคลาส่ แส่ดังข้�อม�ลดั�วยคลาส่ DataReaderDataReader

5.

สร�างออบเจ็+คจ็�จ็ากคลาส DataReaderDim ObjdtReader as OledbDataReader

ประมวลผลด้�วยค�าส��ง ExecuteReader()ObjdtReader = ObjCmd.ExecuteReader()

โด้ย ObjdtReader หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส DataReaderObjCmd หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส Command

เข้�าถึ#งข้�อม�ลแต่ล�ะเรคคอร�ด้ด้�วเมธอด้ Read()ObjdtReader.Read()

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

1515

ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ConnectionConnection

แส่ดังข้�อม�ลดั�วยคลาส่ แส่ดังข้�อม�ลดั�วยคลาส่ DataReaderDataReader

5.

โด้ย ObjdtReader หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส DataReaderfield หมายถึ#ง ชื่��อฟิ2ลด้�หร�อส�าด้�บที่��ข้องฟิ2ลด้�ในเรคคอร�ด้น�3น ( 0.. n-1)

เข้�าถึ#งข้�อม�ลแต่ล�ะฟิ2ลด้�ด้�วย พื่ร+อพื่เพื่อร�ต่�3 Item()

แบบที่�� 1 ObjdtReader.Item(field)แบบที่�� 2 ObjdtReader(field)

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

1616

ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ConnectionConnection

ต่�วอยางการแส่ดังข้�อม�ลดั�วยคลาส่ ต่�วอยางการแส่ดังข้�อม�ลดั�วยคลาส่ DataReaderDataReader

5.1Dim MyConn as OledbconnectionDim strconn as string=“Provider=Microsoft.jet.OLEDB.4.0; Data source=c:\MyDB.MDB” MyConn = new Oledbconnection(strconn)MyConn.Open()

‘ ที่�างาน ก�บ ฐานข้�อม�ลโด้ยใชื่� DataReaderDim MyReader as OleDbDataReaderDim 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()

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

1717

อานัข้�อม�ลจ้ากฐานัข้�อม�ลดั�วย อานัข้�อม�ลจ้ากฐานัข้�อม�ลดั�วยDataReaderDataReader

Lb1.Text = MyReader.Item(“CusID”)Lb2.Text = MyReader.Item(“CusName”)Lb3.Text = MyReader.Item(“CusAddress”)

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

1818

ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ConnectionConnection

ต่�วอยางการแส่ดังข้�อม�ลดั�วยคลาส่ ต่�วอยางการแส่ดังข้�อม�ลดั�วยคลาส่ DataReaderDataReader

5.2Dim MyConn as OledbconnectionDim strconn as string=“Provider=Microsoft.jet.OLEDB.4.0; Data source=c:\MyDB.MDB” MyConn = new Oledbconnection(strconn)MyConn.Open()

‘ ที่�างาน ก�บ ฐานข้�อม�ลโด้ยใชื่� DataReaderDim MyReader as OleDbDataReaderDim MyCmd as OleDbCommand = new OleDbCommand(“Select * From Customer”,MyConn)MyReader = MyCmd.ExecuteReader()While MyReader.Read()

Lb1.Text &= MyReader.Item(“CusID”) & vbcrlfLb2.Text &= MyReader.Item(“CusName”) & vbcrlfLb3.Text &= MyReader.Item(“CusAddress”) & vbcrlf

End While‘ เม��อต่�องการยกเล!กการที่�างาน ก�บ ฐานข้�อม�ลMyReader.Close()MyConn.Close()

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

1919

ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ ต่0ดัต่อฐานัข้�อม�ลดั�วยคลาส่ConnectionConnection

ประมวลผลค�าส่��งดั�วยคลาส่ ประมวลผลค�าส่��งดั�วยคลาส่ CommandCommand6.

โด้ย ObjCmd หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส CommandsqlCmd หมายถึ#ง ประโยคค�าส��ง SQLMyConn หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส connection

แบบที่�� 1 Dim objCmd as OleDbCommandobjCmd = New OleDbCommand(sqlCmd,MyConn)

แบบที่�� 2 Dim objCmd as OleDbCommand = New OleDbCommand(sqlCmd,MyConn)

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

2020

ต่!ด้ต่�อฐานข้�อม�ลด้�วยคลาส ต่!ด้ต่�อฐานข้�อม�ลด้�วยคลาสConnectionConnection

ประมวลผลค�าส่��งดั�วยเมธอดั ประมวลผลค�าส่��งดั�วยเมธอดั ExecuteNonQuery()ExecuteNonQuery() เป!นัเมธอดัทำ��ใช้�ประมวลผลค�าส่��ง เช้นั เพ0�มเรคคอร�ดัใหม ลบ

เรคคอร�ดั แก�ไข้ข้�อม�ล โดัยไมส่งผลล�พธ�ใดั ๆ กล�บมา (Non-Query)

6.

โด้ยที่�� ObjCmd หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส Command

objCmd.ExecuteNonQuery()

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

2121

ต่!ด้ต่�อฐานข้�อม�ลด้�วยคลาส ต่!ด้ต่�อฐานข้�อม�ลด้�วยคลาสConnectionConnection

ประมวลผลค�าส่��งดั�วยเมธอดั ประมวลผลค�าส่��งดั�วยเมธอดัExecuteNonQuery()ExecuteNonQuery()

กรณ�ส่งผลล�พธ�กล�บค'นัมาเป!นัจ้�านัวนัเรคอร�ดัทำ��กรณ�ส่งผลล�พธ�กล�บค'นัมาเป!นัจ้�านัวนัเรคอร�ดัทำ��ถ�กประมวลผลถ�กประมวลผล

6.1

โด้ยที่�� ObjCmd หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส CommandvarRecAffected หมายถึ#ง ต่�วแปรที่��จ็ะใชื่�เก+บจ็�านวนเรคอร�ด้ที่��ถึ�กประมวลผล

varRecAffected = objCmd.ExecuteNonQuery()

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

2222

ต่!ด้ต่�อฐานข้�อม�ลด้�วยคลาส ต่!ด้ต่�อฐานข้�อม�ลด้�วยคลาสConnectionConnection

ประมวลผลค�าส่��งดั�วยเมธอดั ประมวลผลค�าส่��งดั�วยเมธอดั ExecuteScalar() ExecuteScalar() เป!นัเมธอดัทำ��ส่งผลล�พธ�ทำ��ไดั�จ้ากการประมวผลค�าเป!นัเมธอดัทำ��ส่งผลล�พธ�ทำ��ไดั�จ้ากการประมวผลค�า

ส่��ง ส่��ง SQL SQL กล�บค'นัมาเพ�ยงคาเดั�ยวเช้นั ผลล�พธ�ทำ�� กล�บค'นัมาเพ�ยงคาเดั�ยวเช้นั ผลล�พธ�ทำ�� ไดั�จ้ากการประมวลผลฟั8งก�ช้� �นัส่ร"ป ไดั�จ้ากการประมวลผลฟั8งก�ช้� �นัส่ร"ป (Aggregate (Aggregate

Function)Function)

6.2

โด้ยที่�� varResult หมายถึ#ง ต่�วแปรที่��ใชื่�เก+บผลล�พื่ธ�ที่��ได้�จ็ากการประมวลผลกล'�มเรคอร�ด้เชื่�น ค�าที่��ได้�จ็ากฟิ4งก�ชื่��น sum,count,average เป5นต่�นObjCmd หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส Command

varResult = objCmd.ExecuteScalar()

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

2323

ทำ�างานัแบบ ทำ�างานัแบบ disconnected databasedisconnected database ดั�วย ดั�วย DataSet DataSet และ และ DataAdapter DataAdapter

ส่ร�างออบเจ้9กต่�จ้ากคลาส่ ส่ร�างออบเจ้9กต่�จ้ากคลาส่ DataAdapterDataAdapter

7.

โด้ยที่�� objdtAdapter หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส DataAdapterobjConn หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส ConnectionsqlCmd หมายถึ#ง ประโยคค�าส��งที่��น�ามาสร�างต่ารางใน dataset

Dim objdtAdapter As OleDbDataAdapterobjdtAdapter = New OleDbDataAdapter(sqlCmd,objConn)

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

2424

ทำ�างานัแบบ ทำ�างานัแบบ disconnected databasedisconnected database ดั�วย ดั�วย DataSet DataSet และ และ DataAdapter DataAdapter

ส่ร�างออบเจ้9กต่�จ้ากคลาส่ ส่ร�างออบเจ้9กต่�จ้ากคลาส่ DataSetDataSet

7.1

โด้ยที่�� objdtSet หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส DataSet

Dim objdtSet As DataSetobjdtSet = new DataSet

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

2525

ทำ�างานัแบบ ทำ�างานัแบบ disconnected databasedisconnected database ดั�วย ดั�วย DataSet DataSet และ และ DataAdapter DataAdapter

นั�าข้�อม�ลมาไว�ในั นั�าข้�อม�ลมาไว�ในั DataSet DataSet ดั�วยเมธอดั ดั�วยเมธอดั Fill()Fill()

7.2

โด้ยที่�� objdtSet หมายถึ#ง ออบเจ็+กต่�ที่��สร�างจ็ากคลาส DataSet

objdtAdapter.Fill(objdtSet,dataname)

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

2626

ProductsProducts

idid namename unitunit priceprice

11 penpen 55 1010

22 pencilpencil 33 55

ConnectionConnection

Disconnected ModelDisconnected Model

VB4 user id=sa;password=123

DataSet

P1P1

idid namename unitunit priceprice

11 penpen 22 33

22 pencilpencil 33 55

DataAdapter

FillFillSelectCommand

UpdateCommandUpdateUpdate

P1P1

idid namename unitunit priceprice

11 penpen 55 1010

22 pencilpencil 33 55

CommandBuilderCommandBuilder

ProductsProducts

idid namename unitunit priceprice

11 penpen 22 33

22 pencilpencil 33 55

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

2727

DataSet and DataAdapter DataSet and DataAdapter Objects Objects

Data SourceDataAdapterDataTable

DataTable

DataSet

DataAdapter

FillFill

UpdateUpdate

UpdateUpdate

FillFill

ConnectionConnectionUpdateCommandUpdateCommand

SelectCommandSelectCommand

SelectCommandSelectCommand

UpdateCommandUpdateCommand

CommandBuilderCommandBuilder

CommandBuilderCommandBuilder

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

2828

Retriving data from DataSetRetriving data from DataSet

TextBox1.Text = DS.Tables("Customer").Rows(2)("Name")

Table Name Column Name

Row number

DataSet

ID Name Tel

100 Peter 123123121

101 John 012040230

102 David 402123242

103 Joseph 973534245

Customer

ID Name

P1 Coke

P2 Pepsi

P3 Fanta

P4 7Up

Product

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

2929

DataRow

DataTable

DataColumn

DataRow

DataRelation

DataSet1.Tables("TableName").Rows({number})

Delete an existing row

DataSet1.Tables("TableName").Rows({number}).Delete

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

3030

กรณ�ศ์-กษาระบบจ้องห�องพ�กโรงแรม กรณ�ศ์-กษาระบบจ้องห�องพ�กโรงแรมAsiaAirportAsiaAirport

ข้�อม�ลห�องพ�ก ข้�อม�ลห�องพ�ก (TblRoom)(TblRoom) ประเภทำห�องพ�ก ประเภทำห�องพ�ก

(TblRoomType)(TblRoomType) ข้�อม�ลล�กค�า ข้�อม�ลล�กค�า (TblCustomer)(TblCustomer) ข้�อม�ลพนั�กงานัโรงแรม ข้�อม�ลพนั�กงานัโรงแรม

(TblEmployee)(TblEmployee) ข้�อม�ลการจ้องห�องพ�ก ข้�อม�ลการจ้องห�องพ�ก

(TblReservation)(TblReservation) ข้�อม�ลส่มาช้0ก ข้�อม�ลส่มาช้0ก (TblMember)(TblMember)

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

3131

E-R DiagramE-R Diagram

ล�กค�า ห�องพ�ก

พนั�กงานั

ประเภทำ

เป!นั

จ้อง

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

3232

ออกแบบต่าราง ออกแบบต่าราง TblCustomerTblCustomer

ข้�อม�ลล�กค�าประกอบไปด้�วยรายละเอ�ยด้ด้�งต่�อไปน�3

• รห�สล�กค�า• ค�าน�าหน�า• ชื่��อ - นามสก'ลล�กค�า• ที่��อย��• เบอร�โที่ร• เพื่ศ• อาชื่�พื่

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

3333

ต่ต่..ยย. . การจ้องห�องพ�กผานัทำางเว9บไซึ่ต่�การจ้องห�องพ�กผานัทำางเว9บไซึ่ต่�

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

3434

ป7อนข้�อม�ลลงในต่าราง ป7อนข้�อม�ลลงในต่าราง TblCustomerTblCustomer

ป7อนข้�อม�ลต่�วอย�างล�กค�าโด้ยม�รายละเอ�ยด้ด้�งต่�อไปน�3

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

3535

ออกแบบต่าราง ออกแบบต่าราง TblMemberTblMember

ข้�อม�ลสมาชื่!กประกอบไปด้�วยรายละเอ�ยด้ด้�งต่�อไปน�3

• รห�สสมาชื่!ก• ชื่��อผ��ใชื่�ระบบ• รห�สผ�าน• ชื่��อเต่+ม• ประเภที่ผ��ใชื่�งาน• อ�เมล�

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

3636

ป7อนข้�อม�ลลงในต่าราง ป7อนข้�อม�ลลงในต่าราง TblMemberTblMember

ป7อนข้�อม�ลต่�วอย�างลงในต่ารางข้�อม�ลสมาชื่!ก (TblMember)โด้ยม�รายละเอ�ยด้ด้�งต่�อไปน�3

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

3737

ออกแบบหน�าต่�าง ออกแบบหน�าต่�าง LoginLogin

TxtUserNameTxtPassword

LbUserNameLbPassword