03 2-create-db-application-ado-dot-net
DESCRIPTION
สร้างแอพพลิเคชั่นฐานข้อมูลTRANSCRIPT
![Page 1: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/1.jpg)
Create Database Create Database Application by using Application by using
ADO.NETADO.NET
Suan Dusit Rajabhat University, Phitsanulok CampusSuan Dusit Rajabhat University, Phitsanulok CampusMr.Warawut KhangkhanMr.Warawut Khangkhan
![Page 2: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/2.jpg)
K.Warawut Create Database Application by using ADO.NET 2
ADO.NETADO.NET● ย�อมาจาก ActiveX Data Objects● คอ เทคโนโลย�การเข�าถ�งข�อม�ล (Data Access
Technology) ของ .NET ท��ช�วยให�เราเข�ยนโปรแกรมเพ�อเข�าถ�งและท!างานก"บข�อม�ลจากแหล�งข�อม�ล (Data Source) ประเภทต�างๆ ได�อย�างเร�ยบง�ายแต�ม�ประส*ทธ*ภาพ
![Page 3: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/3.jpg)
K.Warawut Create Database Application by using ADO.NET 3
ส�วนประกอบการท!างานของ ส�วนประกอบการท!างานของ ADO.NETADO.NET
แบ�งออกเป,น DataSet และ Data Provider
![Page 4: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/4.jpg)
K.Warawut Create Database Application by using ADO.NET 4
DataSetDataSet● คอ ออบเจ-กต. ซ��งเป,นต"วแทนของข�อม�ลท��โปรแกรม
ของเราด�งมาจากฐานข�อม�ล● DataSet จะเก-บส!าเนา (Copy) ของข�อม�ลส�วนน"1นใน
ฐานข�อม�ลไว�ในหน�วยความจ!าของเคร�อง Client (เคร�องท��โปรแกรมของเราท!างานอย��)
● การท!างานต�างๆ ก"บข�อม�ลใน DataSet จ�งเป,นอ*สระจากฐานข�อม�ล และเม�อถ�งเวลาท��เหมาะสมเราสามารถน!าข�อม�ลจาก DataSet ไปอ"พเดท (Update) ลงฐานข�อม�ลได�
![Page 5: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/5.jpg)
DataSet (DataSet (ต�อต�อ))● เป,นร�ปแบบท��เร�ยกว�า Disconnected Data Access
หรอ “การเข�าถ�งข�อม�ลแบบไม�ต�องเช�อมต�อก"บฐานข�อม�ล (ไว�ตลอดเวลา)” และเร�ยกข�อม�ลใน DataSet ว�า Disconnected Data เน�องจากโปรแกรมจะม�การเช�อมต�อก"บฐานข�อม�ลเท�าท��จ!าเป,นเท�าน"1น เช�น
– การด�งข�อม�ล โปรแกรมจะเป4ดการเช�อมต�อก"บฐานข�อม�ลเพ�อด�งข�อม�ลเข�ามาแล�วป4ดการเช�อมต�อท"นท�หล"งจากด�งข�อม�ลเสร-จ
– ส!าหร"บการแก�ไข เพ*�ม หรอลบข�อม�ล ก-เช�นเด�ยวก"น โปรแกรมจะเช�อมต�อไปย"งฐานข�อม�ลเพ�อร"น Query ของค!าส"�ง UPDATE, INSERT หรอ DELETE จากน"1นการเช�อมต�อจะถ�กป4ดลง
![Page 6: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/6.jpg)
K.Warawut Create Database Application by using ADO.NET 6
DataSet (DataSet (ต�อต�อ))● DataSet ย"งออบเจ-กต.ย�อยท��ส!าค"ญ คอ DataTable
และ DataRow ท��เป,นต"วแทนของเทเบ*ล (ตารางข�อม�ล) และเรคอร.ด (แถวข�อม�ล) ตามล!าด"บ รวมถ�ง DataRelation ท��เป,นต"วแทนของความส"มพ"นธ.ระหว�างเทเบ*ลใน DataSet เป,นต�น
![Page 7: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/7.jpg)
K.Warawut Create Database Application by using ADO.NET 7
Data ProviderData Provider● เร�ยกเต-มๆ คอ .NET Framework Data Provider● คอ ส�วนท��ด�แลในเร�องการเช�อมต�อก"บฐานข�อม�ล และ
การส�ง Query ไปประมวลผลย"งฐานข�อม�ล● Data Provider ไม�ใช�ออบเจ-กต.เด��ยวๆ เหมอนอย�าง
DataSet หากแต�เป,นกล7�มของออบเจ-กต.ท��เก��ยวข�องส"มพ"นธ.ก"น ซ��งร�วมก"นท!างานเพ�อเป,นต"วกลางในการร"บ-ส�งระหว�างฐานข�อม�ลก"บ DataSet
![Page 8: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/8.jpg)
K.Warawut Create Database Application by using ADO.NET 8
Data Provider (Data Provider (ต�อต�อ))
จ"ดเตร�ยมไว� 4 ชน*ดแยกตามประเภทของฐานข�อม�ล ด"งน�1● SQL Server Data Provider (หรอ SQLClient
Data Provider) เป,น Data Provider ท��ถ�กออกแบบมาส!าหร"บฐานข�อม�ล Microsoft SQL Server ต"1งแต�เวอร.ช"�น 7 ข�1นไปโดยเฉพาะ
● OLEDB Data Provider เป,น Data Provider ส!าหร"บแหล�งข�อม�ลใดๆ ก-ตามท��สน"บสน7นการต*ดต�อผ�านทางอ*นเทอร.เฟซ OLEDB เช�น ฐานข�อม�ล Microsoft Access เป,นต�น
![Page 9: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/9.jpg)
K.Warawut Create Database Application by using ADO.NET 9
Data Provider (Data Provider (ต�อต�อ))
จ"ดเตร�ยมไว� 4 ชน*ดแยกตามประเภทของฐานข�อม�ล ด"งน�1● Oracle Data Provider (หรอ OracleClient Data
Provider) เป,น Data Provider ท��ถ�กออกแบบมาส!าหร"บฐานข�อม�ล Oracle โดยเฉพาะ
● ODBC Data Provider เป,น Data Provider ส!าหร"บแหล�งข�อม�ลใดๆ ก-ตามท��ม� ODBC Driver ให�ใช�ในการต*ดต�อ
![Page 10: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/10.jpg)
K.Warawut Create Database Application by using ADO.NET 10
Data Provider (Data Provider (ต�อต�อ))
Data Provider แต�ละชน*ดข�างต�นจะประกอบไปด�วยออบเจ-กต.ต�างๆ ท��ท!างานร�วมก"น ด"งน�1● ออบเจ�กต� Connection ร"บผ*ดชอบในเร�องการเช�อม
ต�อก"บฐานข�อม�ล● ออบเจ�กต� Command ท!าหน�าท��ส�งค!าส"�งไปประมวล
ผลย"งฐานข�อม�ล ซ��งค!าส"�งน"1นอาจเป,น Query ในภาษา SQL หรอเป,นการเร�ยกใช� Stored Procedure ในฐานข�อม�ล เป,นต�น
![Page 11: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/11.jpg)
K.Warawut Create Database Application by using ADO.NET 11
Data Provider (Data Provider (ต�อต�อ))
Data Provider แต�ละชน*ดข�างต�นจะประกอบไปด�วยออบเจ-กต.ต�างๆ ท��ท!างานร�วมก"น ด"งน�1● ออบเจ�กต� DataAdapter ท!าหน�าท��ด�งข�อม�ลจาก
ฐานข�อม�ลมาใส� (fill) ลงใน DataSet และน!าข�อม�ลจาก DataSet ไปอ"พเดทลงฐานข�อม�ล
![Page 12: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/12.jpg)
Data Provider (Data Provider (ต�อต�อ))
Data Provider แต�ละชน*ดข�างต�นจะประกอบไปด�วยออบเจ-กต.ต�างๆ ท��ท!างานร�วมก"น ด"งน�1● ออบเจ�กต� DataReader เป,นออบเจ-กต.ท��ใช�ท!างาน
ก"บ Result Set ในล"กษณะ forward-only (เล�อนต!าแหน�งเรคอร.ดไปข�างหน�าได�อย�างเด�ยว) และ read-only (อ�านข�อม�ลได�อย�างเด�ยว แต�เปล��ยนแปลงแก�ไขไม�ได�) โดยระหว�างท��ใช�ออบเจ-กต.น�1ท!างานก"บข�อม�ลในฐานข�อม�ล จะต�องเป4ดการเช�อมต�อก"บฐานข�อม�ลไว�ตลอดเวลา จ�งเป,นร�ปแบบท��เร�ยกว�า Connected Data Access ซ��งตรงก"นข�ามก"บการท!างานของ DataSet
![Page 13: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/13.jpg)
K.Warawut 13
คลาสท��เป,นต�นแบบของออบเจ-กต.ท"1ง คลาสท��เป,นต�นแบบของออบเจ-กต.ท"1ง 44
SQL Server Data Provider
OLEDB Data Provider
Oracle Data Provider
ODBC Data Provider
ชน*ดของ Data Provider
ช�อคลาสต�นแบบของออบเจ-กต. Connection, Command,
DataAdapter และ DataReader ตามล!าด"บ
SqlCommand, SqlDataAdapter และ SqlDataReader โดยท"�งหมดอย��ในเนมสเปซ System.Data.SqlClientOleDbConnection, OleDbCommand, OleDbDataAdapter และ OleDbDataReader โดยท"1งหมดอย��ในเนมสเปซ System.Data.OleDbOracleConnection, OracleCommand, OracleDataAdapter และ OracleDataReader โดยท"1งหมดอย��ในเนมสเปซ System.Data.OracleClientOdbcConnection, OdbcCommand, OdbcDataAdapter และ OdbcDataReader โดยท"1งหมดอย��ในเนมสเปซ System.Data.Odbc
![Page 14: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/14.jpg)
K.Warawut Create Database Application by using ADO.NET 14
การเช �อมต�อก�บฐานข�อม�ลการเช �อมต�อก�บฐานข�อม�ล
● การเช�อมต�อก"บฐานข�อม�ล Microsoft Access โดยท"�วไปจะใช�คลาส OleDbConnection ในเนมสเปซ System.Data.OleDb
● การเช�อมต�อก"บฐานข�อม�ล Microsoft SQL Server ก-จะใช�คลาส SqlConnection ในเนมสเปซ System.Data.SqlClient
![Page 15: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/15.jpg)
K.Warawut Create Database Application by using ADO.NET 15
การเช �อมต�อก�บฐานข�อม�ล การเช �อมต�อก�บฐานข�อม�ล ((ต�อต�อ))● ก!าหนดรายละเอ�ยดการเช�อมต�อก"บฐานข�อม�ลท��พร-อพ
เพอร.ต�1 ConnectionString
Dim cn As New System.Data.OleDb.OleDbConnection( )cn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;” & _
“Data Source=C:\NWIND.MDB”
Dim cn As New System.Data.OleDb.OleDbConnection( )
Dim cn As New OleDb.OleDbConnection( )=
Dim cn As New OleDbConnection( )=
Imports System.Data.OleDb
![Page 16: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/16.jpg)
K.Warawut Create Database Application by using ADO.NET 16
การเช �อมต�อก�บฐานข�อม�ล การเช �อมต�อก�บฐานข�อม�ล ((ต�อต�อ))● การเช�อมต�อก"บฐานข�อม�ลระหว�าง Access
2003/2007
Access 2003Provider=Microsoft.JET.OLEDB.4.0;data source=c:\\abc.mdbAccess 2007Provider=Microsoft.ACE.OLEDB.12.0;data source=c:\\abc.accdb;Persist Security Info=False
Access 2003 นามสก�ล .mdbAccess 2007 นามสก�ล .accdb
![Page 17: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/17.jpg)
K.Warawut Create Database Application by using ADO.NET 17
การเช �อมต�อก�บฐานข�อม�ล การเช �อมต�อก�บฐานข�อม�ล ((ต�อต�อ))
Dim cn As New System.Data.OleDb.OleDbConnection( )cn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;” & _
“Data Source=C:\NWIND.MDB”
Dim cn As New System.Data.OleDb.OleDbConnection( _“Provider=Microsoft.Jet.OLEDB.4.0;” & _“Data Source=C:\NWIND.MDB”
or
![Page 18: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/18.jpg)
K.Warawut Create Database Application by using ADO.NET 18
เป4ดและป4ดการเช�อมต�อเป4ดและป4ดการเช�อมต�อ
● เป4ดการเช�อมต�อ ใช�เมธอด Open ของออบเจ-กต. Connection
cn.Open( )● ป4ดการเช�อมต�อ ใช�เมธอด Close ของออบเจ-กต.
Connectioncn.Close( )
![Page 19: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/19.jpg)
K.Warawut Create Database Application by using ADO.NET 19
เป4ดและป4ดการเช�อมต�อ เป4ดและป4ดการเช�อมต�อ ((ต�อต�อ))● กรณ�ท��ใช� DataAdapter เป,นต"วกลางในการด�ง
ข�อม�ลจากฐานข�อม�ลมาเก-บไว�ใน DataSet และส�งข�อม�ลจาก DataSet ไปอ"พเดทลงฐานข�อม�ลน"1น ไม�จ!าเป,นต�องเป4ดและป4ดการเช�อมต�อก"บฐานข�อม�ลเอง เน�องจาก DataAdapter จะเป4ดและป4ดการเช�อมต�อก"บฐานข�อม�ลให�โดยอ"ตโนม"ต*
![Page 20: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/20.jpg)
K.Warawut Create Database Application by using ADO.NET 20
ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย Command ObjectCommand Object
● Command Object ต"วแทนของค!าส"�งท��ใช�ท!างานก"บฐานข�อม�ล ซ��งค!าส"�งท��ว�าน�1อาจเป,น Query ของประโยคค!าส"�ง SELECT, INSERT, UPDATE และ DELETE ในภาษา SQL หรอเป,นการเร�ยกไปย"ง Stored Procedure ในฐานข�อม�ลก-ได� (รวมท"1งอาจเป,นค!าส"�งในกล7�ม DDL ของภาษา SQL ท��ใช�สร�างเทเบ*ลใหม�, แก�ไขโครงสร�างของเทเบ*ล ฯลฯ ก-ได�เช�นก"น)
![Page 21: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/21.jpg)
K.Warawut Create Database Application by using ADO.NET 21
ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย Command Object (Command Object (ต�อต�อ))
● Command Object อาจสร�างข�1นมาจากคลาส OleDbCommand, SqlCommand, OracleCommand หรอ OdbcCommand ข�1นอย��ก"บชน*ดของ Data Provider ท��เลอกใช�
● หล"งจากสร�างออบเจ-กต. Command ข�1นมาแล�ว จะต�องก!าหนดค�าให�ก"บพร-อพเพอร.ต�1ต�างๆ ได�แก� พร-อพเพอร.ต�1 Connection, CommandText และ (ถ�าจ!าเป,น) CommandType
Dim cm As New OleDb.OleDbCommand( )
![Page 22: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/22.jpg)
K.Warawut Create Database Application by using ADO.NET 22
ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย Command Object (Command Object (ต�อต�อ))
Connection Properties● ค!าส"�งใน Command Object จะถ�กส�งไปประมวลผล
ย"งฐานข�อม�ลผ�านทางการเช�อมต�อท��ระบ7ไว�ท�� Connection Properties
Dim cn As New System.Data.OleDb.OleDbConnection( )cn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;” & _
“Data Source=C:\NWIND.MDB”Dim cm As New OleDb.Command( )cm.Connection = cn
![Page 23: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/23.jpg)
K.Warawut Create Database Application by using ADO.NET 23
ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย Command Object (Command Object (ต�อต�อ))
CommandText Properties● ใช�ก!าหนดค!าส"�งท��จะส�งไปประมวลผลย"งฐานข�อม�ล
เช�น ถ�าต�องการด�งข�อม�ลจาก Field CustomerID และ CompanyName ในเทเบ*ล Customers จะต�องก!าหนดค�าสตร*งท��เป,นค!าส"�ง SQL ให�ก"บ CommandText Properties ของ Command Object
cm.CommandText = “SELECT CustomerID, CompanyName ” & _“FROM Customers”
![Page 24: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/24.jpg)
K.Warawut Create Database Application by using ADO.NET 24
ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย Command Object (Command Object (ต�อต�อ))
CommandType Properties● ใช�ก!าหนดว�าค�าสตร*ง (String) ใน CommandType
Properties คอ ค!าส"�งแบบใด โดยค�าท��ก!าหนดได� คอ (ค�าเหล�าน�1ถ�กรวบรวมไว�ในอ�น*วเมอเรช"�น CommandType)
![Page 25: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/25.jpg)
K.Warawut Create Database Application by using ADO.NET 25
ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย Command Object (Command Object (ต�อต�อ))
CommandType Properties (ต�อ)อ�น*วเมอเรช"�น CommandType● Text – ก!าหนดว�าค�าสตร*งในพร-อพเพอร.ต�1
CommandText คอประโยคค!าส"�งในภาษา SQL ซ��งฐานข�อม�ลจะประมวลผลค!าส"�ง SQL น"1น ค�า Text น�1เป,นค�าด�ฟอลต.ของพร-อพเพอร.ต�1 CommandType ด"งน"1นถ�าหากค�าสตร*งท��ก!าหนดไว�ท��พร-อพเพอร.ต�1 CommandText คอค!าส"�ง SQL ก-ไม�จ!าเป,นต�องก!าหนดพร-อพเพอร.ต�1 CommandType
![Page 26: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/26.jpg)
K.Warawut Create Database Application by using ADO.NET 26
ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย Command Object (Command Object (ต�อต�อ))
CommandType Properties (ต�อ)อ�น*วเมอเรช"�น CommandType (ต�อ)● StoredProcedure – ก!าหนดว�าค�าสตร*งใน
พร-อพเพอร.ต�1 CommandText คอช�อ Stored Procedure ในฐานข�อม�ล ซ��งจะท!าให� Stored Procedure น"1นถ�กประมวลผล
![Page 27: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/27.jpg)
K.Warawut Create Database Application by using ADO.NET 27
ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย Command Object (Command Object (ต�อต�อ))
CommandType Properties (ต�อ)อ�น*วเมอเรช"�น CommandType (ต�อ)● TableDirect – ก!าหนดว�าค�าสตร*งในพร-อพเพอร.ต�1
CommandText คอช�อเทเบ*ลในฐานข�อม�ล ซ��ง Command Object จะให�ผลล"พธ.เป,น Result Set ของข�อม�ลท7ก field และท7ก record ในเทเบ*ลน"1น
![Page 28: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/28.jpg)
K.Warawut Create Database Application by using ADO.NET 28
ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย ท!างานก"บข�อม�ลในฐานข�อม�ลด�วย Command Object (Command Object (ต�อต�อ))
● สามารถก!าหนด CommandText Properites และ Connection ไปพร�อมก"บการสร�าง Command Object ได�เลย
Dim strSQL As String = “SELECT * FROM Customers”Dim cm As New OleDb.Command(strSQL, cn)
![Page 29: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/29.jpg)
K.Warawut Create Database Application by using ADO.NET 29
ประมวลผลค!าส"�งใน ประมวลผลค!าส"�งใน Command Command ObjectObject
หล"งจากก!าหนดพร-อพเพอร.ต�1 Connection, CommandText และ CommandType แล�ว ให�เร�ยกใช�เมธอด (Method) ใดเมธอดหน��งต�อไปน�1ของ Command Object เพ�อส�งค!าส"�งไปประมวลผลย"งฐานข�อม�ล● ExecuteNonQuery● ExecuteScalar● ExecuteReader
![Page 30: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/30.jpg)
K.Warawut Create Database Application by using ADO.NET 30
ประมวลผลค!าส"�งใน ประมวลผลค!าส"�งใน Command Command Object (Object (ต�อต�อ))
● ExecuteNonQuery Method จะส�งค!าส"�งไปประมวลผลแต�ไม�ม�คนค�าใดๆ กล"บมาให� เราจ�งม"กใช�เมธอดน�1ประมวลผลค!าส"�ง SQL หรอ Stored Procedure ท��เป,นการเพ*�ม ลบ และแก�ไขข�อม�ล
● ExecuteScalar Method จะให�ผลล"พธ.เป,นข�อม�ลฟ4ลด.แรกของเรคอร.ดแรกใน Result Set ไม�ว�า Result Set ท��ได�จะม�ก��ฟ4ลด.และก��เรคอร.ดก-ตาม จ�งเหมาะส!าหร"บการประมวลผลค!าส"�ง SQL หรอ Stored Procedure ท��ใช�หาผลสร7ปของข�อม�ล
![Page 31: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/31.jpg)
K.Warawut Create Database Application by using ADO.NET 31
ประมวลผลค!าส"�งใน ประมวลผลค!าส"�งใน Command Command Object (Object (ต�อต�อ))
● ExecuteReader Method จะให�ผลล"พธ.เป,นออบเจ-กต. DataReader ท��ใช�เข�าถ�ง Result Set ในล"กษณะ forward-only และ read-only
![Page 32: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/32.jpg)
K.Warawut Create Database Application by using ADO.NET 32
การใช�งาน การใช�งาน DataReaderDataReader
สร�าง DataReader● DataReader Object คอ ออบเจ-กต.ของคลาส
OleDbDataReader, SqlDataReader, OracleDataReader หรอ OdbcDataReader ข�1นอย��ก"บชน*ด Data Provider ท��ใช�
● DataReader Object จะได�มาจากการเร�ยก ExecuteReader Method ของ Command Object เท�าน"1น
Dim dr As OleDb.OleDbDataReaderDr = cm.ExecuteReader( )
ไม�ระบ�คส� ง New เพ� อสร�งออบเจ�กต�
![Page 33: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/33.jpg)
K.Warawut Create Database Application by using ADO.NET 33
การใช�งาน การใช�งาน DataReader (DataReader (ต�อต�อ))
ใช� DataReader เข�าถ�งข�อม�ลใน Result Set● เม�อต�องการเข�าถ�งข�อม�ลใน Result Set จะต�องเร�ยก
เมธอด Read ของ DataReader เพ�ออ�านข�อม�ลของเรคอร.ดแรกเข�ามาเก-บไว�ใน DataReader ซ��งถ�าหากเมธอด Read สามารถอ�านเรคอร.ดมาได� ม"นจะให�ผลล"พธ.เป,นค�า True พร�อมท"1งขย"บต"วช�1ไปย"งเรคอร.ดถ"ดไป
Do While dr.Read( )'โค�ดท� ใช�ทงนก�บแต�ละเรคอร�ดใน result set ท� ถ$กอ�นมเก�บไว�ใน DataReader
Loop
![Page 34: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/34.jpg)
K.Warawut Create Database Application by using ADO.NET 34
การใช�งาน การใช�งาน DataReader (DataReader (ต�อต�อ))
พร�อพเพอร�ต�� Item ของ DataReader● ร�ปแบบ: datareader.Item(field)
While dr.Read( )Dim myObject As Object = dr.Item(3)Dim myOtherObject As Object = dr.Item(“CustomerID”)
Loop While
datareader ออบเจ กต� DataReaderfield ช��อหร�อหมายเลขล�าด�บของฟ�ลด�ท��ต�องการเข�าถ!งข�อม"ล
MsgBox(dr.Item(“CustomerID”).ToString( ))
![Page 35: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/35.jpg)
K.Warawut Create Database Application by using ADO.NET 35
การใช�งาน การใช�งาน DataReader (DataReader (ต�อต�อ))
ป!ด DataReader● เร�ยกเมธอด Close
dr.Close( )
![Page 36: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/36.jpg)
K.Warawut Create Database Application by using ADO.NET 36
Example:Example:
DataReaderDemo ProjectsDataReaderDemo Projects
![Page 37: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/37.jpg)
K.Warawut Create Database Application by using ADO.NET 37
การท!างานก"บ การท!างานก"บ Query Query ท��ร"บ ท��ร"บ ParameterParameter● บางคร"1งเราไม�ร��ค!าส"�ง SQL ท��จะส�งไปประมวลผลย"ง
ฐานข�อม�ลจนกว�าจะถ�งช�วง Run Time เช�น เราอาจสร�างหน�าจอให�ผ��ใช�ค�นหาช�อส*นค�าในบร*ษ"ทของเรา ซ��งค!าส"�ง SQL ท��ใช�ม�ล"กษณะ ด"งน�1
SELECT * FROM Products WHERE ProductName Like ค��ท��ใชคนห�
![Page 38: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/38.jpg)
K.Warawut Create Database Application by using ADO.NET 38
Example:Example:
SearchDemo ProjectsSearchDemo Projects
![Page 39: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/39.jpg)
K.Warawut Create Database Application by using ADO.NET 39
การท!างานก"บ การท!างานก"บ Query Query ท��ร"บ ท��ร"บ Parameter Parameter ((ต�อต�อ))
● การใช�ค!าส"�ง SQL ท��ม�การร"บ Parameter โดยถ�าเป,นค!าส"�ง SQL ท��จะส�งไปประมวลผลย"งฐานข�อม�ล Microsoft Access ให�ระบ7เคร�องหมายค!าถาม (?) ลงไปในค!าส"�งตรงต!าแหน�งท��ต�องการให�แทนด�วยค�าของ Parameter เช�น
● จากน"1นให�สร�าง Parameter ข�1นมาแล�วก!าหนดค�าตามท��ต�องการ ก�อนจะส�งค!าส�งไปประมวลผล
SELECT * FROM Products WHERE ProductName Like ?
![Page 40: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/40.jpg)
การท!างานก"บ การท!างานก"บ Query Query ท��ร"บ ท��ร"บ Parameter Parameter ((ต�อต�อ))
สร�างพาราม#เตอร�● พาราม*เตอร.ของค!าส"�ง SQL คอ ออบเจ-กต.ของคลาส
OleDbParameter, SqlParameter, OracleParameter หรอ OdbcParameter ข�1นอย��ก"บชน*ดของ Data Provider ท��ใช� ในกรณ�จะต�องใช�คลาส OleDbParameter ซ��งคอนสตร"คเตอร.ของม"นม�ร�ปแบบการใช�งานร�ปแบบด"งน�1
name ช��อ parametervalue ค$าท��ก�าหนดให� parameter
Format: OleDbParameter(name, value)
Dim param As New OleDbParameter(“product_name”, “Coffee”)
![Page 41: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/41.jpg)
K.Warawut Create Database Application by using ADO.NET 41
การท!างานก"บ การท!างานก"บ Query Query ท��ร"บ ท��ร"บ Parameter Parameter ((ต�อต�อ))
เพ#�ม Parameter เข�าไปในคอลเล�คช��น Parameters● หล"งจากสร�าง Parameter มาแล�วจะต�องเพ*�มเข�าไป
ในคอลเล-คช"�น Parameters ของ Command Object ด�วย จ�งจะท!าให�ค�าของ Parameter น"1นถ�กแทนลงในค!าส"�ง SQL
● การเพ*�ม Parameter ท!าได�โดยเร�ยกเมธอด Add ของคอลเล-คช"�น Parameters ใน Command Object
cm.Parameters.Add(param)
![Page 42: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/42.jpg)
K.Warawut Create Database Application by using ADO.NET 42
การท!างานก"บ การท!างานก"บ Query Query ท��ร"บ ท��ร"บ Parameter Parameter ((ต�อต�อ))
เพ#�ม Parameter เข�าไปในคอลเล�คช��น Parameters● หรออาจเร�ยกเมธอด AddWithValue เพ�อก!าหนดช�อ
และค�าของ Parameter เลยก-ได� ซ��งถ�าใช�เมธอดน�1 ก-ไม�ต�องสร�างออบเจ-กต.ของคลาส OleDbParameter ข�1นมาก�อน
cm.Parameters.AddWithValue(“product_name”, “Coffee”)
![Page 43: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/43.jpg)
K.Warawut Create Database Application by using ADO.NET 43
การท!างานก"บ การท!างานก"บ Query Query ท��ร"บ ท��ร"บ Parameter Parameter ((ต�อต�อ))
เพ#�ม Parameter เข�าไปในคอลเล�คช��น Parameters● ถ�าหากค!าส"�ง SQL ม�การร"บ Parameter มากกว�า 1
ค�า จะต�องเพ*�ม Parameter เข�าไปในคอลเล-คช"�น Parameters ตามล!าด"บของเคร�องหมาย ? ท��ระบ7ในค!าส"�ง SQL ด"งน"1นจะเห-นได�ว�าช�อ Parameter ไม�ม�ความส!าค"ญเลย
![Page 44: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/44.jpg)
K.Warawut Create Database Application by using ADO.NET 44
การท!างานก"บ การท!างานก"บ Query Query ท��ร"บ ท��ร"บ Parameter Parameter ((ต�อต�อ))
เพ#�ม Parameter เข�าไปในคอลเล�คช��น Parameters● แต�หากเป,นการส�งค!าส"�ง SQL ไปประมวลผลย"งฐาน
ข�อม�ล MS SQL Server ด�วยออบเจ-กต. SqlCommand เราจะระบ7 Parameter แบบม�ช�อ (Named Parameter) ลงในค!าส"�ง SQL แทนท��จะเป,นเคร�องหมาย ?
SELECT * FROM Products WHERE ProductName LIKE @product_name
![Page 45: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/45.jpg)
K.Warawut Create Database Application by using ADO.NET 45
Example:Example:
SearchParamDemo ProjectsSearchParamDemo Projects
![Page 46: 03 2-create-db-application-ado-dot-net](https://reader036.vdocuments.net/reader036/viewer/2022062419/559381dd1a28ab21218b473d/html5/thumbnails/46.jpg)
K.Warawut Create Database Application by using ADO.NET 46
Contact usContact usMr.Warawut KhangkhanMr.Warawut Khangkhan
● Social Media:http://www.facebook.com/awarawut (Profile)http://www.facebook.com/AjWarawut (Learning)http://twitter.com/awarawut
● Web Site:http://awarawut.blogspot.com
● E-Mail:[email protected][email protected]
● Mobile:083-0698-410