ado.net -database connection

40
ADO.NET database connection @wong Ref:: http://www.anekwong.com

Upload: anekwong-yoddumnern

Post on 10-Jun-2015

583 views

Category:

Technology


3 download

DESCRIPTION

การเขียนโปรแกรมฐานข้อมูล 1. ใช้โปรแกรมฐานข้อมูลเขียนหนาจอ เชน Access, Oracle ข้อดี คือ เมื่อเขียนแล้วจะเกิด error น้อย ข้อเสีย คือ รูปแบบหน้าจอไม่ยืดหยุ่น 2. ใช้โปรแกรมภาษาเขียนติดต่อฐานข้อมูล เช่น VB, Delphi, Java ข้อดี : หน้าจอเป็นไปตามความสามารถของโปรแกรมเมอร์ ข้อเสีย : เขียนแล้วจะเกิด error ได้ง่าย Mysql MsSQL จะไม่มี หน้าจอ จึงต้องใช้วิธีที่สองเท่านั้น การเขียนโปรแกรมติดตอฐานขอมูลโดยใช VB มี 3 เทคนิค 1. DAO 2. RDO 3. ADO 4. ADO.NET (เฉพาะ VB.NET) จะใช้เมื่อเขียนแบบ Web Application มีวิธีในการเขียนโปรแกรมเพื่อติดต่อฐานข้อมูล 2 วิธี 1. Control 2. Coding 3. Control + Coding เป็นการผสมระหว่าง 1 และ 2

TRANSCRIPT

Page 1: ADO.NET -database connection

ADO.NETdatabase connection

@wongRef:: http://www.anekwong.com

Page 2: ADO.NET -database connection

ADO.NET

• ADO.NET คื�อเทคืโนโลยีการเข้�าถึ�งข้�อมู�ล ข้อง .NET ท�ช่�วยีให้�เราสามูารถึเข้ยีนโปรแกรมูเพื่��อ

ท�างานก บระบบฐานข้�อมู�ลต่�างๆ• ADO => ActiveX Data Object เป&นเทคืโนโลยีข้อง

ไมูโคืรซอฟต่*ท�มูมูาก�อนจะพื่ ฒนา .NET

Page 3: ADO.NET -database connection

ADO.NET Architecture • .NET Framework data providers• The DataSet

Page 4: ADO.NET -database connection

windows Data Sources

Windows Data sources เป&นส�วนประกอบ ในห้น�าจอ IDE ท�าห้น�าท�

- แสดงแห้ล�งข้�อมู�ล (data source) ข้องแต่�ละโปรเจคื- เป&นการก�าห้นดรายีละเอยีดการเช่��อมูต่�อก บฐานข้�อมู�ล,การก�าห้นดเทเบ.ลและฟ/ลด*ท�จะต่�งข้�อมู�ลมูาใช่�งาน- ผู�ก (bind) ไอเท1มูต่�างๆในแห้ล�งข้�อมู�ล เช่�น ฟ/ลด* เข้�าก บ

คือนโทร บนฟอร*มู

Page 5: ADO.NET -database connection

Data Provider

• เป&นส�วนท�ด�แลในเร��องการเช่��อมูต่�อก บฐานข้�อมู�ล และการส�งคื�าส �ง Query ต่�างๆไปประมูวลผูลยี ง

ฐานข้�อมู�ล• เป&นกล2�มูข้อง Object ท�เก�ยีวข้�องส มูพื่ นธ์*ก น

ร�วมูก นท�างานเพื่��อเป&นต่ วกลางในการร บ-ส�ง ข้�อมู�ล ระห้ว�างฐานข้�อมู�ลก บ DataSet

• ใน VS2005 แบ�งกล2�มูเป&น 4 กล2�มู เพื่��อใช่�งานก บฐานข้�อมู�ลต่�างช่น.ดก น– SQL Server Data Provider ใช่�ก บ MS SQL Server ต่ 4งแต่� V.7 – OLEDB Data Provider เช่�น ใช่�ก บ MS Access– Oracle Data Provider – ODBC Data Provider

Page 6: ADO.NET -database connection

Data Provider

• Data Provider แต่�ละช่น.ดข้�างต่�นจะประกอบไปด�วยีออปเจคืต่�างๆท�ท�างานร�วมูก นคื�อ– Connection ท�าห้น�าท�ในการเช่��อมูต่�อก บฐานข้�อมู�ล– Command ท�าห้น�าท�ส�งคื�าส �งไปประมูวลผูลยี งฐาน

ข้�อมู�ล ซ��งส�วนให้ญ่�ใช่�คื�าส �ง Query ข้องภาษา SQL– DataAdapter ท�าห้น�าท�ด�งข้�อมู�ลจากฐานข้�อมู�ลมูาใส�

(fill) ลงใน DataSet และในทางกล บก นก1น�าข้�อมู�ลไปอ พื่เดทลงฐานข้�อมู�ลด�วยี

– DataReader เป&นออบเจคืท�ใช่�ท�างานก บ ช่2ดข้�อมู�ล ผูลล พื่ธ์* (result set) ในล กษณะ forward-only / read-

only (เห้มูาะก บการน�าข้�อมู�ลมูาแสดงผูลอยี�างเดยีวไมู�ให้�แก�ไข้)

Page 7: ADO.NET -database connection

1 .NET Framework Data Providers

.NET Framework data provider Description

.NET Framework Data Provider for SQL Server

Provides data access for Microsoft SQL Server version 7.0 or later. Uses the System.Data.SqlClient namespace.

.NET Framework Data Provider for OLE DB For data sources exposed using OLE DB. Uses the System.Data.OleDb namespace.

.NET Framework Data Provider for ODBC For data sources exposed using ODBC. Uses the System.Data.Odbc namespace.

.NET Framework Data Provider for Oracle For Oracle data sources. The .NET Framework Data Provider for Oracle supports Oracle client software version 8.1.7 and later, and uses the System.Data.OracleClient namespace.

Page 8: ADO.NET -database connection

Core Objects of .NET Framework Data Providers

Object Description Connection Establishes a connection to a specific data source. The base

class for all Connection objects is the DbConnection class.

Command Executes a command against a data source. Exposes Parameters and can execute within the scope of a Transaction from a Connection. The base class for all Command objects is the DbCommand class.

DataReader Reads a forward-only, read-only stream of data from a data source. The base class for all DataReader objects is the DbDataReader class.

DataAdapter Populates a DataSet and resolves updates with the data source. The base class for all DataAdapter objects is the DbDataAdapter class.

Page 9: ADO.NET -database connection

- The .NET Framework Data Provider for SQL Server

คื�าส �งส�าห้ร บ Imports Provider

Imports System.Data.SqlClient

- The .NET Framework Data Provider for OLE DB

Driver Provider SQLOLEDB Microsoft OLE DB Provider for SQL Server

MSDAORA Microsoft OLE DB Provider for Oracle

Microsoft.Jet.OLEDB.4.0 OLE DB Provider for Microsoft Jet

คื�าส �งส�าห้ร บ Imports Provider

Imports System.Data.OleDb

Page 10: ADO.NET -database connection

คื�าส �งส�าห้ร บ Imports Provider Imports System.Data.Odbc

- The .NET Framework Data Provider for Oracle คื�าส �งส�าห้ร บ Imports Provider

Imports System.Data Imports System.Data.OracleClient

- The .NET Framework Data Provider for ODBC

Driver

SQL Server

Microsoft ODBC for Oracle

Microsoft Access Driver (*.mdb)

Page 11: ADO.NET -database connection

Choosing a .NET Framework Data Provider Provider Notes .NET Framework

Data Provider for SQL Server

Recommended for middle-tier applications using Microsoft SQL Server 7.0 or later.

Recommended for single-tier applications using Microsoft Database Engine (MSDE) or SQL Server 7.0 or later.

Recommended over use of the OLE DB Provider for SQL Server (SQLOLEDB) with the .NET Framework Data Provider for OLE DB.

For SQL Server 6.5 and earlier, you must use the OLE DB Provider for SQL Server with the .NET Framework Data Provider for OLE DB.

.NET Framework Data Provider for OLE DB

Recommended for middle-tier applications using SQL Server 6.5 or earlier.

For SQL Server 7.0 or later, the .NET Framework Data Provider for SQL Server is recommended.

Also recommended for single-tier applications using Microsoft Access databases. Use of an Access database for a middle-tier application is not recommended.

.NET Framework Data Provider for ODBC

Recommended for middle and single-tier applications using ODBC data sources.

.NET Framework Data Provider for Oracle

Recommended for middle and single-tier applications using Oracle data sources.

Page 12: ADO.NET -database connection

2. Data Set Designer เป&นเคืร��องมู�อ ใน Vs ท�ช่�วยีในการปร บแต่�งแก�ไข้ DataSet

ได�อยี�างสะดวก ใน .Net Framework การเข้ยีนโปรแกรมู เพื่��อ

ท�างานก บข้�อมู�ลในฐานข้�อมู�ลเป&นร�ปแบบท�เรยีกว�าdisconnected data access

การเข้�าถึ�งข้�อมู�ลแบบไมู�ได�เช่��อมูต่�อ ห้ร�อ การเข้�าถึ�งข้�อมู�ล แบบท�ไมู�ต่�องเช่��อมูต่�อก บฐานข้�อมู�ลไว�ต่ลอดเวลา ห้ล ก

การ จะด�งข้�อมู�ล จากเทเบ.ลในฐานข้�อมู�ลมูาเก1บลงเทเบ.ล( ออบเจคื Data Table) ใน DataSet (ซ��งอยี��ในห้น�วยีคืวามูจ�าข้องเคืร��อง) แล�วต่ ดการเช่��อมูต่�อก บฐานข้�อมู�ล

ท นท จากน 4นจะท�างานก บ DataSet แล�วจ�งคื�อยีอ พื่เดทการเปล�ยีนแปลงต่�างๆท�เก.ดข้�4นก บ

DataSet ลงไปยี งฐานข้�อมู�ลจร.งๆ

Page 13: ADO.NET -database connection

ADO.NET DataSet

Page 14: ADO.NET -database connection

แสดงการท�างานข้อง dataSet

SME เทเบ.ล Customers

เทเบ.ล Orders

Table Adapter

Table Adapter เทเบ.ล Customers

เทเบ.ล Orders

ออบเจ็�ค Data Table

โปรแกรม

ฐานข้�อม�ล

Page 15: ADO.NET -database connection

DataSet

• คื�อออบเจคืท�จ�าลองต่ วเองเป&นต่ วแทนข้องข้�อมู�ล ท�โปรแกรมูด�งมูาจากฐานข้�อมู�ล โดยีข้�อมู�ลใน

DataSet จะท�างานอยี��ในห้น�วยีคืวามูจ�าข้องเคืร��อง ท�โปรแกรมูต่.ดต่ 4งอยี�� และข้�อมู�ลในดาต่�าเซต่น4จะ

เป&นอ.สระจากฐานข้�อมู�ลจร.ง ซ��งเมู��อเรามูการแก�ไข้ คื�าต่�างๆ ก1จ�าเป&นท�จะต่�องท�าการอ พื่เดทข้�อมู�ลใน ดาต่�าเซต่ ลงไปยี งฐานข้�อมู�ลจร.ง เราเรยีกว�าการ

ท�างานแบบ Disconnected data access• ภายีในดาต่�าเซต่ ยี งมูออบเจคืยี�อยีคื�อ– DataTable– DataRow

Page 16: ADO.NET -database connection

แสดงการท�างานข้อง dataSet

บทบาทข้องออบเจ็�ค TableAdapter เป�นตั�วกลางในการร�บ- ส่�งข้�อม�ล ระหว�าง ฐานข้�อม�ลก�บออบเจ็�ค DataSet ในโปรแกรมข้องเราโดยปกตั!เราใช้�ออบเจ็�ค

TableAdapter หน#$งๆ ท&าหน�าท'$ ร�บ-ส่�งข้�อม�ลระหว�างเทเบ!ลหน#$งในฐานข้�อม�ล ก�บเทเบ!ล หน#$งใน DataSet

Tableadapter.Fill(datatable)ร�ปแบบ

Tableadapter ออบเจ1คื DataSetDatatable ออบเจ1คื DataTable ท� TableAdapter จะน�าข้�อมู�ลมูาใส�ลงไป

ห้ล งจากใส�ข้�อมู�ลลงใน Data Table แล�วการเรยีกใช่�ข้�อมู�ล DataTable จะมูร�ปแบบ

Page 17: ADO.NET -database connection

Dataset.table(row).field

ร�ปแบบ

Dataset ออบเจ1คื DatasetTable ช่��อต่าราง ท�ต่�องการเข้�าถึ�งข้�อมู�ลRow เรคือร*ท�ต่�องการเข้�าถึ�งข้�อมู�ล โดยีระบ2เป&นเลข้จ�านวนเต่1มูต่ 4งแต่� 0 ถึ�ง

count-1 เมู��อ count คื�อจ�านวนเรคือร*ดท 4งห้มูดField ช่��อฟ9ลด*ท�ต่�องการเข้�าถึ�งข้�อมู�ล

Page 18: ADO.NET -database connection

Tableadapter.Fill(datatable)

ร�ปแบบ

Fill และ GetData ท�แสดงอยี��ในส�วนข้อง TableAdapter ใน DataSet Designer คื�อ ช่��อข้องเมูธ์อด GetData ให้�ผูลล พื่ธ์* เป&นออบเจ1คื Data Table ท�ใส�ข้�อมู�ลลง

ไปแล�วใน DataTable และเมูธ์อด GetData ให้�ผูลล พื่ธ์*เป&นออบเจ1คื DataTableท�ใส�ข้�อมู�ลลงไป

Page 19: ADO.NET -database connection

การท�า Data Binding Data Binding หมายถึ#ง การผู�ก (bind) ข้�อม�ลใน DataSet

เข้�าก�บคอนโทรลบนฟอร+ม เพื่-$อแส่ดงข้�อม�ลออกมาโดยอ�ตัม�ตั!

ข้�อด'ข้อง การท&า DataBinding ช้�วยให�เราไม�ตั�องเข้'ยน code เพื่-$อน&าข้�อม�ลจ็าก DataSet มาแส่ดง

Page 20: ADO.NET -database connection

ADO.NET Sample Application Option Explicit OnOption Strict On

Imports SystemImports System.DataImports System.Data.SqlClient

Public Class Program Public Shared Sub Main()

Dim connectionString As String = GetConnectionString() Dim queryString As String = _ "SELECT CategoryID, CategoryName FROM dbo.Categories;"

Using connection As New SqlConnection(connectionString) Dim command As SqlCommand = connection.CreateCommand() command.CommandText = queryString

แบบใช้� Provider แบบSqlClient

Page 21: ADO.NET -database connection

Try connection.Open() Dim dataReader As SqlDataReader = _ command.ExecuteReader() Do While dataReader.Read() Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _ dataReader(0), dataReader(1)) Loop dataReader.Close()

Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub

Private Shared Function GetConnectionString() As String ' To avoid storing the connection string in your code, ' you can retrieve it from a configuration file. Return "Data Source=(local);Initial Catalog=Northwind;" _ & "Integrated Security=SSPI;" End FunctionEnd Class

Page 22: ADO.NET -database connection

ADO.NET Sample Application แบบใช้� Provider แบบ OleDb Option Explicit On

Option Strict On

Imports SystemImports System.DataImports System.Data.OleDb

Public Class Program Public Shared Sub Main()

Dim connectionString As String = GetConnectionString() Dim queryString As String = _ "SELECT CategoryID, CategoryName FROM Categories;"

Using connection As New OleDbConnection(connectionString) Dim command As OleDbCommand = connection.CreateCommand() command.CommandText = queryString Try

Page 23: ADO.NET -database connection

Try connection.Open() Dim dataReader As OleDbDataReader = _ command.ExecuteReader() Do While dataReader.Read() Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", _ dataReader(0), dataReader(1)) Loop dataReader.Close()

Catch ex As Exception Console.WriteLine(ex.Message) End Try End Using End Sub

Private Shared Function GetConnectionString() As String ' To avoid storing the connection string in your code, ' you can retrieve it from a configuration file. ' Assumes Northwind.mdb is located in c:\Data folder. Return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _ & "c:\Data\Northwind.mdb;User Id=admin;Password=;" End FunctionEnd Class

Page 24: ADO.NET -database connection

Just do it!

• ในต่ วอยี�างจะใช่�ฐานข้�อมู�ล Northwind ข้อง Ms Access• และใช่� OleDB Provider ด งน 4นต่�อง Import ต่ ว Provider

เข้�ามูาในโปรแกรมูให้�ถึ�ก

1.การเช่��อมูต่�อก บฐานข้�อมู�ล

Imports System.Data.OleDB

วางไว�บรรท�ดแรกส่/ดข้องโปรแกรมDim objConn As New System.Data.OleDbConnection()

objConn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Northwind.mdb”

ข้�อม�ลส่�วนน'0ส่ามารถึเปล'$ยนไปตัามท'$เราก&าหนด

Page 25: ADO.NET -database connection

1.การเช่��อมูต่�อก บฐานข้�อมู�ล

- เป/ดและป/ดการเช่��อมูต่�อ ใช่�เมูดธ์อด

objConn.Open()

objConn.Close()

Page 26: ADO.NET -database connection

2. การท�างานก บฐานข้�อมู�ลโดยีใช่�ออบเจคื Commandเราใช่�ออบเจคืน4เป&นต่ วส�งคื�าส �งข้องภาษา Sql เพื่��อส�งไปจ ดการก บข้�อมู�ลท�ฐานข้�อมู�ล เช่�น พื่วก คื�าส �ง Select, Update, Delete, Insert เป&นต่ น โดยีมูคื�าส �งในการสร�างออบเจคืคือมูมูานด*ด งน4

Dim objComm As New OleDb.OleDbCommand()

ซ��งข้ณะใช่�ออบเจคืน4 จะต่�องมูการเช่��อมูต่�ออยี�� และเป&นการใช่�Provider แบบเดยีวก นด�วยี การใช่�งานพื่ร1อพื่เพื่อร*ต่4

CommandTextobjComm.CommandText = “Select * from Employyes”

การส �งให้�ออบเจคืคือมูฯ ประมูวลผูล

objComm.ExecuteNonQuryobjComm.ExecuteScalarobjComm.ExecuteReader

Page 27: ADO.NET -database connection

2. การท�างานก บฐานข้�อมู�ลโดยีใช่�ออบเจคื Commandเราใช่�ออบเจคืน4เป&นต่ วส�งคื�าส �งข้องภาษา Sql เพื่��อส�งไปจ ดการก บข้�อมู�ลท�ฐานข้�อมู�ล เช่�น พื่วก คื�าส �ง Select, Update, Delete, Insert เป&นต่ น โดยีมูคื�าส �งในการสร�างออบเจคืคือมูมูานด*ด งน4

Dim objComm As New OleDb.OleDbCommand()

ซ��งข้ณะใช่�ออบเจคืน4 จะต่�องมูการเช่��อมูต่�ออยี�� และเป&นการใช่�Provider แบบเดยีวก นด�วยี การใช่�งานพื่ร1อพื่เพื่อร*ต่4

CommandTextobjComm.CommandText = “Select * from Employyes”

การส �งให้�ออบเจคืคือมูฯ ประมูวลผูล

objComm.ExecuteNonQuryobjComm.ExecuteScalarobjComm.ExecuteReader

Page 28: ADO.NET -database connection

การส่�$งให�ออบเจ็คคอมฯประมวลผูล

objComm.ExecuteReader การส่�$งโดยใช้�ค&าส่�$งน'0จ็ะได�ผูลล�พื่ธ์+เป�น Set ข้องข้�อม�ล ซึ่#$งจ็ะน&าผูลล�พื่ธ์+มาเก�บไว�ในออบเจ็ค DataReader

การส่ร�าง dataReader

Dim dr As OleDb.OleDbDataReaderdr = objComm.ExcuteReader

พื่ร�อพื่เพื่อร+ตั'0 Item ข้อง DataReader

While dr.read()Dim myObj As object = dr.Item(3)

Dim myOtherObj As object = dr.Item(“Customer”)End While

Page 29: ADO.NET -database connection

การส่�$งให�ออบเจ็คคอมฯประมวลผูล

objComm.ExecuteReader การส่�$งโดยใช้�ค&าส่�$งน'0จ็ะได�ผูลล�พื่ธ์+เป�น Set ข้องข้�อม�ล ซึ่#$งจ็ะน&าผูลล�พื่ธ์+มาเก�บไว�ในออบเจ็ค DataReader

การส่ร�าง dataReader

Dim dr As OleDb.OleDbDataReaderdr = objComm.ExcuteReader

พื่ร�อพื่เพื่อร+ตั'0 Item ข้อง DataReader

While dr.read()Dim myObj As object = dr.Item(3)

Dim myOtherObj As object = dr.Item(“Customer”)End While

Page 30: ADO.NET -database connection

โปรแกรมแส่ดงการด#งข้�อม�ลจ็ากฐานข้�อม�ลโดยใช้�DataReader

ใส�คื�าส �งท�Click ข้องป2<มู

ListBox1

Page 31: ADO.NET -database connection

Imports System.Data.OleDbConst DbFile As String = “C:\northwind.mdb”Dim strConn As String = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & DbFile

Dim strSQL As String = “Select CustomerID,CompanyName From Customers”

Dim objConn As New OleDbConnection(StrConn)Dim objComm As New OleDbCommand(strSQL,objConn)Dim dr As OleDbDataReader

objConn.Open()dr = objComm.ExecuteReader()

ListBox1.Items.Add(“ ” รห้ สล�กคื�า & ControlChars.Tab & “ ”ช่��อบร.ษ ทล�กคื�า )Do while dr.Read() Dim strRecord As String = dr.Item(“CustomerID”).tostring() & ControlChars.Tab & dr. _ Item(“CompanyName”).Tostring() ListBox1.Items.Add(strRecord)Loopdr.Close()objConn.Close()

เฉพื่าะบรรท ดน4 ให้�เอาไว�เป&นบรรท ด แรกส2ดข้องโคื�ด ไมู�สามูารถึใส�ไว�ใน

Sub ใดๆได�

Page 32: ADO.NET -database connection

ผูลล�พื่ธ์+ โปรแกรมแส่ดงการด#งข้�อม�ลจ็ากฐานข้�อม�ลโดยใช้�DataReader

Page 33: ADO.NET -database connection

การใช้�งาน DataAdapter

สร�าง DataAdapter => Dim da As New OleDb.OleDbDataAdapter

การใช่� Method Fill เพื่��อด�งข้�อมู�ลมูาใส�DataSet => dataAdapter.Fill(dataSet,table)

Dim objConn As New Data.OleDbConnection(“Provider=Microsoft.Jet.OL _EDB.4.0;Data Source=C:\Northwind.mdb”)Dim strSQL As String = “Select * from Employees”Dim da As New OleDb.OleDbDataAdapterDa.SelectCommand = New OleDb.OleDbCommand(strSQL,objConn)

Dim ds As New DataSetda.Fill(ds,”Employees”)

เราสามูารถึอ�างอ.งถึ�งฟ/ลด*ต่�างๆใน dataSet ได�โดยีมูร�ปแบบด งน4dataSet.Tables(table).rows(row).(field)

เช่�น textbox1.text = ds.Tables(“employees”).row(0).(“FirstName”) ห้ร�อการแก�ไข้ ds.Tables(“employees”).row(0).(“FirstName”) = “Chaimard”

Page 34: ADO.NET -database connection

การใช้�งาน DataAdapter

การใช่� Method Update เพื่��อปร บปร2งข้�อมู�ลลงไปฐานข้�อมู�ล => dataAdapter.Update(dataSet,table)

Page 35: ADO.NET -database connection

DataSet• การเพื่.�มูข้�อมู�ลเข้�าใน DataSet

Dim tb As DataTable = ds.Tables(“Employees”)Dim row As DataRow = tb.NewRow()

row(“FirstName”) = “Chaimard”row(“LastName”) = “Kama”

tb.Rows.Add(row)

Page 36: ADO.NET -database connection

การแก�ไข้ข้�อมู�ลใน DataSetDim tb As DataTable = ds.Tables(“Employees”)For Each row As DataRow In tb.Rows

if row(“FirstName”) = “Chaimard” Thenrow.(“FirstName”) = “Superman”

end ifNext

Page 37: ADO.NET -database connection

การลบข้�อมู�ลใน DataSetDim tb As DataTable = ds.Tables(“Employees”)For Each row As DataRow In tb.Rows

if row(“FirstName”) = “Chaimard” Thenrow.dalete()

end ifNext

Page 38: ADO.NET -database connection

การผู�กข้�อมู�ลเข้�าก บคือนโทรล (Binding Data)

• Simple Binding Data เป&นการผู�กข้�อมู�ลเข้�าก บคือนโทรลปกต่. ง�ายีๆ เช่�น

textbox, Label จากต่ารางเดยีว• Complex Binding Data

เป&นแสดงข้�อมู�ลท�เก.ดจากการเช่��อมูโยีงต่าราง 2 ต่าราง ด�วยีก น และน�ามูาผู�กก บคือนโทรล เช่�น ListBox,

ComboBox

Page 39: ADO.NET -database connection

Simple Binding Data ร�ปแบบ :

object.DataBindings.Add(propertyName,dataSource,dataMember) เช่�น : textbox1.dataBindings.Add(“text”,ds.Tables(“emp”), “FirstName”)

Listbox1.DataSource = ds.Tables(“emp”)Listbox1.DisplayMember = “FirstName”

Complex Binding DataWith cboStudent

.datasource = ds.Tables(“Faculty”)

.displaymember = “DescriptionThai”

.ValueMember = “FacultyCode”

.DataBindings.Add(“SelectValue”,objBS,“facultyCode”)End with

ต่ วอยี�าง : การผู�กคือนโทรล

ComboBox ในฟอร*มูประว ต่.

นศ. เพื่��อแสดงข้�อมู�ลคืณะ ท�เรยีน ซ��งเป&นการน�า

ข้�อมู�ลมูาจากต่าราง 2 ต่าราง คื�อ 1. ข้�อมู�ลรห้ ส

คืณะจากต่าราง Student 2.ข้�อมู�ลช่��อคืณะจาก

ต่าราง faculty ซ��งท 4ง 2 ต่ารางเช่��อมูต่�อก นด�วยี

ฟ/ลด* facultyCode

เมู��อมูการเล�อนข้�อมู�ล ในต่าราง Student จะ ท�าให้�ฟ/ลด* รห้ สคืณะเปลยีนไปด�วยี ซ��งคื�า

ส �งน4ก1จะเป&นต่ วผู�กคือนโทรลคือมูโบฯน4เข้�า ก บ facultyCode ข้องต่าราง Student ส�วน

ข้�อมู�ลช่��อคืณะ เราจะให้�น�ามูาจาก ต่าราง คืณะ ( เพื่ราะว�าต่าราง student ไมู�ได�เก1บ

ข้�อมู�ลช่��อคืณะไว�)

Page 40: ADO.NET -database connection

การส �งให้�เล��อนเรคือร*ด โดยีใช่� ต่ วแปรออบเจคืBindingSourceด วอยี�างการใช่�คื�าส �ง

คื�าส �งสร�างออบเจคื Dim objBS As New BindingSource คื�าส �งบอกให้�ออบเจคืร� �จ กก บ ดาด�าเซต่ objBS.DataSource = ds.Tables(“emp”)

(ds.Tables(“emp”) คื�อ ดาต่�าเซต่ท�เก1บต่าราง emp )

เล��อนไปเรคืคือร*ดแรก : objBS.MoveFirst เล��อนเรคืคือร*ดถึ ดไป : objBS.MoveNext

เล��อนเรคืคือร*ดถึ�อยีกล บ : objBS.MovePrevious เล��อนไปเรคืคือร*ดส2ดท�ายี :objBS.MovLast

การส �งให้�เล��อนเรคือร*ด เล��อนไปเรคืคือร*ดแรก : me.bindingContext(ds.Tables.(“emp”)).position = 0

เล��อนเรคืคือร*ดถึ ดไป : me.bindingContext(ds.Tables.(“emp”)).position += 1 เล��อนเรคืคือร*ดถึ�อยีกล บ : me.bindingContext(ds.Tables.(“emp”)).position -

= 1 เล��อนไปเรคืคือร*ดส2ดท�ายี :

me.bindingContext(ds.Tables.(“emp”)).position = me.bindingContext(ds.Tables.(“emp”)).count - 1