ado.net -database connection
Post on 10-Jun-2015
597 Views
Preview:
DESCRIPTION
TRANSCRIPT
ADO.NETdatabase connection
@wongRef:: http://www.anekwong.com
ADO.NET
• ADO.NET คื�อเทคืโนโลยีการเข้�าถึ�งข้�อมู�ล ข้อง .NET ท�ช่�วยีให้�เราสามูารถึเข้ยีนโปรแกรมูเพื่��อ
ท�างานก บระบบฐานข้�อมู�ลต่�างๆ• ADO => ActiveX Data Object เป&นเทคืโนโลยีข้อง
ไมูโคืรซอฟต่*ท�มูมูาก�อนจะพื่ ฒนา .NET
ADO.NET Architecture • .NET Framework data providers• The DataSet
windows Data Sources
Windows Data sources เป&นส�วนประกอบ ในห้น�าจอ IDE ท�าห้น�าท�
- แสดงแห้ล�งข้�อมู�ล (data source) ข้องแต่�ละโปรเจคื- เป&นการก�าห้นดรายีละเอยีดการเช่��อมูต่�อก บฐานข้�อมู�ล,การก�าห้นดเทเบ.ลและฟ/ลด*ท�จะต่�งข้�อมู�ลมูาใช่�งาน- ผู�ก (bind) ไอเท1มูต่�างๆในแห้ล�งข้�อมู�ล เช่�น ฟ/ลด* เข้�าก บ
คือนโทร บนฟอร*มู
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
Data Provider
• Data Provider แต่�ละช่น.ดข้�างต่�นจะประกอบไปด�วยีออปเจคืต่�างๆท�ท�างานร�วมูก นคื�อ– Connection ท�าห้น�าท�ในการเช่��อมูต่�อก บฐานข้�อมู�ล– Command ท�าห้น�าท�ส�งคื�าส �งไปประมูวลผูลยี งฐาน
ข้�อมู�ล ซ��งส�วนให้ญ่�ใช่�คื�าส �ง Query ข้องภาษา SQL– DataAdapter ท�าห้น�าท�ด�งข้�อมู�ลจากฐานข้�อมู�ลมูาใส�
(fill) ลงใน DataSet และในทางกล บก นก1น�าข้�อมู�ลไปอ พื่เดทลงฐานข้�อมู�ลด�วยี
– DataReader เป&นออบเจคืท�ใช่�ท�างานก บ ช่2ดข้�อมู�ล ผูลล พื่ธ์* (result set) ในล กษณะ forward-only / read-
only (เห้มูาะก บการน�าข้�อมู�ลมูาแสดงผูลอยี�างเดยีวไมู�ให้�แก�ไข้)
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.
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.
- 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
คื�าส �งส�าห้ร บ 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)
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.
2. Data Set Designer เป&นเคืร��องมู�อ ใน Vs ท�ช่�วยีในการปร บแต่�งแก�ไข้ DataSet
ได�อยี�างสะดวก ใน .Net Framework การเข้ยีนโปรแกรมู เพื่��อ
ท�างานก บข้�อมู�ลในฐานข้�อมู�ลเป&นร�ปแบบท�เรยีกว�าdisconnected data access
การเข้�าถึ�งข้�อมู�ลแบบไมู�ได�เช่��อมูต่�อ ห้ร�อ การเข้�าถึ�งข้�อมู�ล แบบท�ไมู�ต่�องเช่��อมูต่�อก บฐานข้�อมู�ลไว�ต่ลอดเวลา ห้ล ก
การ จะด�งข้�อมู�ล จากเทเบ.ลในฐานข้�อมู�ลมูาเก1บลงเทเบ.ล( ออบเจคื Data Table) ใน DataSet (ซ��งอยี��ในห้น�วยีคืวามูจ�าข้องเคืร��อง) แล�วต่ ดการเช่��อมูต่�อก บฐานข้�อมู�ล
ท นท จากน 4นจะท�างานก บ DataSet แล�วจ�งคื�อยีอ พื่เดทการเปล�ยีนแปลงต่�างๆท�เก.ดข้�4นก บ
DataSet ลงไปยี งฐานข้�อมู�ลจร.งๆ
ADO.NET DataSet
แสดงการท�างานข้อง dataSet
SME เทเบ.ล Customers
เทเบ.ล Orders
Table Adapter
Table Adapter เทเบ.ล Customers
เทเบ.ล Orders
ออบเจ็�ค Data Table
โปรแกรม
ฐานข้�อม�ล
DataSet
• คื�อออบเจคืท�จ�าลองต่ วเองเป&นต่ วแทนข้องข้�อมู�ล ท�โปรแกรมูด�งมูาจากฐานข้�อมู�ล โดยีข้�อมู�ลใน
DataSet จะท�างานอยี��ในห้น�วยีคืวามูจ�าข้องเคืร��อง ท�โปรแกรมูต่.ดต่ 4งอยี�� และข้�อมู�ลในดาต่�าเซต่น4จะ
เป&นอ.สระจากฐานข้�อมู�ลจร.ง ซ��งเมู��อเรามูการแก�ไข้ คื�าต่�างๆ ก1จ�าเป&นท�จะต่�องท�าการอ พื่เดทข้�อมู�ลใน ดาต่�าเซต่ ลงไปยี งฐานข้�อมู�ลจร.ง เราเรยีกว�าการ
ท�างานแบบ Disconnected data access• ภายีในดาต่�าเซต่ ยี งมูออบเจคืยี�อยีคื�อ– DataTable– DataRow
แสดงการท�างานข้อง dataSet
บทบาทข้องออบเจ็�ค TableAdapter เป�นตั�วกลางในการร�บ- ส่�งข้�อม�ล ระหว�าง ฐานข้�อม�ลก�บออบเจ็�ค DataSet ในโปรแกรมข้องเราโดยปกตั!เราใช้�ออบเจ็�ค
TableAdapter หน#$งๆ ท&าหน�าท'$ ร�บ-ส่�งข้�อม�ลระหว�างเทเบ!ลหน#$งในฐานข้�อม�ล ก�บเทเบ!ล หน#$งใน DataSet
Tableadapter.Fill(datatable)ร�ปแบบ
Tableadapter ออบเจ1คื DataSetDatatable ออบเจ1คื DataTable ท� TableAdapter จะน�าข้�อมู�ลมูาใส�ลงไป
ห้ล งจากใส�ข้�อมู�ลลงใน Data Table แล�วการเรยีกใช่�ข้�อมู�ล DataTable จะมูร�ปแบบ
Dataset.table(row).field
ร�ปแบบ
Dataset ออบเจ1คื DatasetTable ช่��อต่าราง ท�ต่�องการเข้�าถึ�งข้�อมู�ลRow เรคือร*ท�ต่�องการเข้�าถึ�งข้�อมู�ล โดยีระบ2เป&นเลข้จ�านวนเต่1มูต่ 4งแต่� 0 ถึ�ง
count-1 เมู��อ count คื�อจ�านวนเรคือร*ดท 4งห้มูดField ช่��อฟ9ลด*ท�ต่�องการเข้�าถึ�งข้�อมู�ล
Tableadapter.Fill(datatable)
ร�ปแบบ
Fill และ GetData ท�แสดงอยี��ในส�วนข้อง TableAdapter ใน DataSet Designer คื�อ ช่��อข้องเมูธ์อด GetData ให้�ผูลล พื่ธ์* เป&นออบเจ1คื Data Table ท�ใส�ข้�อมู�ลลง
ไปแล�วใน DataTable และเมูธ์อด GetData ให้�ผูลล พื่ธ์*เป&นออบเจ1คื DataTableท�ใส�ข้�อมู�ลลงไป
การท�า Data Binding Data Binding หมายถึ#ง การผู�ก (bind) ข้�อม�ลใน DataSet
เข้�าก�บคอนโทรลบนฟอร+ม เพื่-$อแส่ดงข้�อม�ลออกมาโดยอ�ตัม�ตั!
ข้�อด'ข้อง การท&า DataBinding ช้�วยให�เราไม�ตั�องเข้'ยน code เพื่-$อน&าข้�อม�ลจ็าก DataSet มาแส่ดง
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
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
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
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
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ส่ามารถึเปล'$ยนไปตัามท'$เราก&าหนด
1.การเช่��อมูต่�อก บฐานข้�อมู�ล
- เป/ดและป/ดการเช่��อมูต่�อ ใช่�เมูดธ์อด
objConn.Open()
objConn.Close()
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
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
การส่�$งให�ออบเจ็คคอมฯประมวลผูล
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
การส่�$งให�ออบเจ็คคอมฯประมวลผูล
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
โปรแกรมแส่ดงการด#งข้�อม�ลจ็ากฐานข้�อม�ลโดยใช้�DataReader
ใส�คื�าส �งท�Click ข้องป2<มู
ListBox1
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 ใดๆได�
ผูลล�พื่ธ์+ โปรแกรมแส่ดงการด#งข้�อม�ลจ็ากฐานข้�อม�ลโดยใช้�DataReader
การใช้�งาน 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”
การใช้�งาน DataAdapter
การใช่� Method Update เพื่��อปร บปร2งข้�อมู�ลลงไปฐานข้�อมู�ล => dataAdapter.Update(dataSet,table)
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)
การแก�ไข้ข้�อมู�ลใน DataSetDim tb As DataTable = ds.Tables(“Employees”)For Each row As DataRow In tb.Rows
if row(“FirstName”) = “Chaimard” Thenrow.(“FirstName”) = “Superman”
end ifNext
การลบข้�อมู�ลใน DataSetDim tb As DataTable = ds.Tables(“Employees”)For Each row As DataRow In tb.Rows
if row(“FirstName”) = “Chaimard” Thenrow.dalete()
end ifNext
การผู�กข้�อมู�ลเข้�าก บคือนโทรล (Binding Data)
• Simple Binding Data เป&นการผู�กข้�อมู�ลเข้�าก บคือนโทรลปกต่. ง�ายีๆ เช่�น
textbox, Label จากต่ารางเดยีว• Complex Binding Data
เป&นแสดงข้�อมู�ลท�เก.ดจากการเช่��อมูโยีงต่าราง 2 ต่าราง ด�วยีก น และน�ามูาผู�กก บคือนโทรล เช่�น ListBox,
ComboBox
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บ
ข้�อมู�ลช่��อคืณะไว�)
การส �งให้�เล��อนเรคือร*ด โดยีใช่� ต่ วแปรออบเจคื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
top related