SlideShare a Scribd company logo
1 of 28
Download to read offline
บททบทท 3 ADO.NET3 ADO.NET กบกบ
ฐานขอมลฐานขอมล AccessAccess
2003/20072003/2007
Suan Dusit Rajabhat University, Phitsanulok CampusSuan Dusit Rajabhat University, Phitsanulok Campus
Mr.Warawut KhangkhanMr.Warawut Khangkhan
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 2
เนอหาเนอหา
●
ทศทางการพฒนาแอพพลเคชนดานฐานขอมล
ของ VS2008
●
การพฒนาระบบงานดานฐานขอมลโดยอาศย
กล./ม ADO.NET
●
การเช0อมต/อกบฐานขอมล Access 2003/2007
●
การผกตดขอมล (Binding Data)
●
การใชงานออบเจ5กต6 DataReader
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 3
เนอหาเนอหา
●
การใชงานเมธอด Execute ของออบเจ5กต6
Command
●
การตรวจสอบโครงสรางของฐานขอมล Access
2003/2007
●
การใชงานออบเจ5กต6 Query ของฐานขอมล
Access 2003/2007
●
การจดการฐานขอมล Access โดยการท:า
Transaction
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 4
ทศทางการพฒนาแอพพลเคชนทศทางการพฒนาแอพพลเคชน
ดานฐานขอมลของดานฐานขอมลของ VS2008VS2008
.NET 2.0
Windows Form Application
ADO.NET 2.0
●
SQL
.NET 3.0/3.5
LINQ
●
LINQ to Object
●
LINQ to SQL
●
LINQ to XML
WPF Application
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 5
การพฒนาระบบงานดานฐานการพฒนาระบบงานดานฐาน
ขอมล โดยอาศยกล"#มขอมล โดยอาศยกล"#ม ADO.NETADO.NET
●
เรยกใชกล./มออบเจ5กต6 ADO.NET ในขณะ
ออกแบบ (Design Time)
●
การเรยกใชงานกล./มออบเจ5กต6 ADO.NET โดย
การเขยนโคดโดยตรง (Run Time)
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 6
กล"#มออบเจ%กต'กล"#มออบเจ%กต' ADO.NETADO.NET
กล"#มกล"#ม
ออบเจ%กต'ออบเจ%กต'
ย#อยทย#อยท
ท(างานท(างาน
ร#วมกบร#วมกบ
กล"#มกล"#ม
ออบเจ%กต'ออบเจ%กต'
หลกของหลกของ
ADO.NETADO.NET
กล"#มกล"#ม
ออบเจ%กต'ทใชออบเจ%กต'ทใช
OLEDB DataOLEDB Data
ProviderProvider
Namespace System.Data.OleDb
กล"#มกล"#ม
ออบเจ%กต'ทใชออบเจ%กต'ทใช
SQL ServerSQL Server
DataData
ProviderProvider
Namespace System.Data.SqlClient
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 10
หนาทของออบเจ%กต'หลกหนาทของออบเจ%กต'หลก
แต#ละชนดแต#ละชนด
●
ออบเจ%กต' Connection
ท:าหนาทสรางการเช0อมต/อเขากบฐานขอมล
โดย OleDbConnection เช0อมต/อกบฐานขอมล
ชนด Access ส/วน SqlConnection ท:าหนาท
เช0อมต/อกบฐานขอมลชนด SQL Server
●
ออบเจ%กต' DataAdapter
ท:าหนาทเก5บช.ดค:าสง SQL เพ0อควรขอมลออก
มาจากฐานขอมล ผลลพธ6ทไดค0อ ออบเจ5กต6
DataSet
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 11
หนาทของออบเจ%กต'หลกหนาทของออบเจ%กต'หลก
แต#ละชนดแต#ละชนด
●
ออบเจ%กต' DataSet
ท:าหนาทเก5บผลลพธ6จากการท:าควรขอมลจาก
ฐานขอมลทไดจาก ออบเจ5กต6 DataAdapter
เป?นออบเจ5กต6หลกทมบทบาทและมความส:าคญ
มากทส.ด
●
ออบเจ%กต' Command
ท:าหนาทรนช.ดค:าสง SQL ผลลพธ6ทไดค0อ
ออบเจ5กต6 DataReader
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 12
หนาทของออบเจ%กต'หลกหนาทของออบเจ%กต'หลก
แต#ละชนดแต#ละชนด
●
ออบเจ%กต' DataReader
ท:าหนาทเก5บผลลพธ6ของการท:าควรขอมลจาก
ฐานขอมล เช/นเดยวกบออบเจ5กต6 DataSet แต/
จะไดมาจาก ออบเจ5กต6 Command
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 13
การเช0อมต/อกบฐานขอมลการเช0อมต/อกบฐานขอมล AccessAccess
2003/20072003/2007
●
ความแตกต/างกนระหว/าง Access 2003/2007
Access 2003 นามสก.ล .mdb
Access 2007 นามสก.ล .accdb
●
การเช0อมต/อกบฐานขอมล
Access 2003
Provider=Microsoft.JET.OLEDB.4.0;data source=c:abc.mdb
Access 2007
Provider=Microsoft.ACE.OLEDB.12.0;data
source=c:abc.accdb;Persist Security Info=False
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 14
การผกตดขอมลการผกตดขอมล (Binding Data)(Binding Data)
●
การผกตดขอมล (Binding Data) ถ0อเป?นการ
ท:างานขBนพ0Bนฐานในการแสดงขอมลออกมาจาก
ฐานขอมล
การผกตดขอมลการผกตดขอมล (Binding Data)(Binding Data)
สถาปCตยกรรม ADO.NET มอย/ 2 แบบ ค0อ
●
Simple Binding Data เป?นการผกตดขอมล
แบบปกต ค0อ เป?นการแสดงขอมลดวย
คอนโทรล DataGridView, TextBox, Label
เป?นตน เป?นวธการแสดงขอมลออกมาจาก
ตารางเดยว (ไม/มการเช0อมโยงกบตารางอ0นๆ)
●
Complex Binding Data หร0ออาจจะเรยกว/า
การท:า Lookup Table ก5ได เป?นการแสดง
ขอมลทเกดจากการเช0อมโยงความสมพนธ6
ระหว/างตาราง 2 ตารางเขาดวยกน
การใชงานออบเจ%กต'การใชงานออบเจ%กต'
DataReaderDataReader
●
ท:าหนาทเก5บผลควรขอมลออกมาจากฐาน
ขอมล โดยทจะอ/านครBง 1 เร5คคอร6ด (record)
●
สถานะเคล0อนทไปขาง (Forward-Only) เพยง
อย/างเดยว
●
เกดจากการควรช.ดค:าสง SQL ของออบเจ5กต6
Command
●
เหมาะกบการควรขอมลขนาดเล5ก เช/น การ
แสดงขอมลหร0อการอ/านค/าขEBนมา เพ0อใชเป?น
เง0อนไขในการท:างาน
●
สามารถรบขอมลจากออบเจ5กต6 DataSet
การใชงานเมธอดการใชงานเมธอด ExecuteExecute ของของ
ออบเจ5กต6ออบเจ5กต6 CommandCommand
●
เมธอด ExecuteReader( )
ท:าหนาทรนช.ดค:าสง SQL ประเภทเรยกดหร0อ
อ/านขอมล ผลการรนไดออบเจ5กต6
DataReader
●
เมธอด ExecuteScalar( )
ท:าหนาทเช/นเดยวกบเมธอด
ExecuteReader( ) แต/มขอแตกต/างก5ค0อ
เมธอดนBส/งค/ากลบมาเพยงค/าเดยวเท/านBน
●
เมธอด ExecuteQuery( )
ท:าหนาทรนช.ดค:าสง SQL ประเภทเพม แกไข
หร0อลบขอมล
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 18
ขอแตกต#างระหว#างออบเจ%กต'ขอแตกต#างระหว#างออบเจ%กต'
DataReaderDataReader กบออบเจ%กต'กบออบเจ%กต'
DataSetDataSet
ออบเจ%กต' DataReader
●
ท:าหนาทอ/านขอมลออกมาจากฐานขอมล
โดยทจะอ/านครBงละ 1 เร5คคอร6ดออกมา ม
สถานะเคล0อนทไปขางหนา (Forward-Only)
เพยงอย/างเดยว
●
ปกตแลวเกดจากการควรช.ดค:าสง SQL ของ
ออบเจ5กต6 Command ส/วนออบเจ5กต6 DataSet
เกดจากการควรช.ดค:าสง SQL ของออบเจ5กต6
DataAdapter
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 19
ขอแตกต#างระหว#างออบเจ%กต'ขอแตกต#างระหว#างออบเจ%กต'
DataReaderDataReader กบออบเจ%กต'กบออบเจ%กต'
DataSetDataSet
ออบเจ%กต' DataReader (ต#อ)
●
เกดมาจากสถาปCตยกรรม Connected หมายถEง
มการเช0อมต/อกบแหล/งขอมลตลอดเวลา ส/งผล
ใหเม0อใชงานออบเจ5กต6 DataReader แลว ตอง
ควบค.มการเปGด-ปGดของออบเจ5กต6 DataReader
เองทBงหมด เพราะว/าไม/สามารถเปGดออบเจ5กต6
DataReader เกน 1 ครBงในเวลาเดยวกน
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 20
ขอแตกต#างระหว#างออบเจ%กต'ขอแตกต#างระหว#างออบเจ%กต'
DataReaderDataReader กบออบเจ%กต'กบออบเจ%กต'
DataSetDataSet
ออบเจ%กต' DataSet
●
อ/านขอมลทBงหมดทควรดวยช.ดค:าสง SQL
ออกมาแลวเก5บไวในหน/วยความจ:า จากนBนจะ
น:าไปใชในรปแบบใด ก5แลวแต/ความตองการ
●
สามารถจดการกบขอมลทเก5บอย/ในออบเจ5กต6
DataSet ไดมากกว/าออบเจ5กต6 DataReader
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 21
ขอแตกต#างระหว#างออบเจ%กต'ขอแตกต#างระหว#างออบเจ%กต'
DataReaderDataReader กบออบเจ%กต'กบออบเจ%กต'
DataSetDataSet
ออบเจ%กต' DataSet (ต#อ)
●
เกดมาจากสถาปCตยกรรม Disconnected ซEง
หมายถEง เม0อค.ณควรขอมลมาเก5บไวทออบ
เจ5กต6 DataSet แลว ก5จะมการตดการเช0อมต/อ
กบแหล/งขอมลโดยอตโนมตทนท
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 22
การตรวจสอบโครงสรางของฐานการตรวจสอบโครงสรางของฐาน
ขอมลขอมล Access 2003/2007Access 2003/2007
●
ปกตแลวเราใชกล./มออบเจ5กต6 ADO.NET ควร
ขอมลออกมาจากฐานขอมล แต/ก5มการควรอก
ลกษณะหนEงทไม/ตองการขอมลแต/อย/างใด แต/
ตองการตรวจสอบโครงสรางของฐานขอมล
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 23
การใชงานออบเจ5กต6การใชงานออบเจ5กต6 QueryQuery ของของ
ฐานขอมลฐานขอมล Access 2003/2007Access 2003/2007
สามารถใชงานออบเจ5กต6 Query ได 2 ลกษณะ
●
การใชงานออบเจ%กต' Query แบบไม#มการ
ส#งค#าตวแปร หมายถEง ช.ดค:าสง SQL ทเก5บ
อย/มความสมบรณ6ในตวมนเอง โดยสามารถส/ง
ผลการท:างานของช.ดค:าสง SQL ดงกล/าวออก
มาไดเลย
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 24
การใชงานออบเจ5กต6การใชงานออบเจ5กต6 QueryQuery ของของ
ฐานขอมลฐานขอมล Access 2003/2007Access 2003/2007
สามารถใชงานออบเจ5กต6 Query ได 2 ลกษณะ
(ต/อ)
●
การใชงานออบเจ%กต' Query แบบมการส#ง
ค#าตวแปร หมายถEง เม0อตองการผลการท:างาน
ของช.ด SQL ทเก5บอย/ในออบเจ5กต6 Query
ประเภทนB ตองตรวจสอบก/อนว/าช.ดค:าสง SQL
ดงกล/าวตองการตวแปรกตว และตวแปรแต/ละ
ตวเป?นขอมลชนดใด
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 25
การจดการฐานขอมลการจดการฐานขอมล AccessAccess โดยโดย
การท:าการท:า TransactionTransaction
●
การท:า Transaction เป?นการเขยนโคด เพ0อรบ
ประกนว/าเม0อมการประมวลผลขอมลแลว ไม/ว/า
จะเป?นการเพมหร0อแกไขขอมล จะถกน:าไป
กระท:ากบขอมลทอย/ในตารางจรงครบท.ก
ตารางทอย/ใน Transaction เดยวกน ซEงจะมอย/
2 สถานะเท/านBน ค0อ
– สมบรณ' 100% เรยกสถานะนBว/า Commit
Transaction
– ลมเหลว 0% เรยกสถานะนBว/า Rollback
Transaction
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 26
หลกการท:างานของหลกการท:างานของ TransactionTransaction
●
ค0อ เป?นการแกไขขอมลทอย/ใน Cache ก/อน
เม0อมการ Commit Transaction จEงเขาส/ขBน
ตอนการน:าขอมล ซEงถกแกไขแลวไปกระท:ากบ
ขอมลทอย/ในตารางจรง แต/ในกรณทเกดการท:า
Rollback Transaction ก5จะไม/กระทบกบขอมล
ทอย/ในตารางจรงแต/อย/างใด เพราะเป?นการ
แกไขขอมลทอย/ใน Cache นนเอง
●
สามารถท:า Transaction ไดทBงฐานขอมล
Access และ SQL Server
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 27
เมธอดทเกยวกบเมธอดทเกยวกบ TransactionTransaction
●
เมธอด BeginTrans( ) ของออบเจ5กต6
SqlConnection เพ0อเรมตนท:า Transaction
●
เมธอด Commit( ) ของออบเจ5กต6
SqlTransaction เพ0อ Commit Transaction
●
เมธอด Rollback( ) เพ0อท:า Rollback
Transaction
K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 28
Contact usContact us
Mr.Warawut KhangkhanMr.Warawut Khangkhan
Social Media:
http://www.facebook.com/awarawut
http://twitter.com/awarawut
Web Site:
http://awarawut.blogspot.com
E-Mail:
awarawut@hotmail.com
warawut_kha@dusit.ac.th
Mobile:
083-0698-410

More Related Content

Viewers also liked (7)

Excellence@EMC Gold 18 Sep 2015
Excellence@EMC Gold 18 Sep 2015Excellence@EMC Gold 18 Sep 2015
Excellence@EMC Gold 18 Sep 2015
 
Penetration document format slides
Penetration document format slidesPenetration document format slides
Penetration document format slides
 
Computers
ComputersComputers
Computers
 
20150114 歷史書
20150114 歷史書20150114 歷史書
20150114 歷史書
 
ฉันเหมือนใคร
ฉันเหมือนใครฉันเหมือนใคร
ฉันเหมือนใคร
 
Part 2 high performance retailing from retail in detail ltd
Part 2 high performance retailing from retail in detail ltdPart 2 high performance retailing from retail in detail ltd
Part 2 high performance retailing from retail in detail ltd
 
luan van thac si kinh te (3).pdf
luan van thac si kinh te (3).pdfluan van thac si kinh te (3).pdf
luan van thac si kinh te (3).pdf
 

Similar to 03 ado-dot-net-access

Javacentrix com chap10-0
Javacentrix com chap10-0Javacentrix com chap10-0
Javacentrix com chap10-0
Theeravaj Tum
 
61 sql server 2008 complete
61 sql server 2008 complete61 sql server 2008 complete
61 sql server 2008 complete
Tae Delphi
 
การจัดการระบบเครือข่ายด้วย Management switch
การจัดการระบบเครือข่ายด้วย Management switchการจัดการระบบเครือข่ายด้วย Management switch
การจัดการระบบเครือข่ายด้วย Management switch
Nattawut Pornonsung
 

Similar to 03 ado-dot-net-access (20)

03 2-create-db-application-ado-dot-net
03 2-create-db-application-ado-dot-net03 2-create-db-application-ado-dot-net
03 2-create-db-application-ado-dot-net
 
Javacentrix com chap10-0
Javacentrix com chap10-0Javacentrix com chap10-0
Javacentrix com chap10-0
 
20110303 joomla-appserv-server2go
20110303 joomla-appserv-server2go20110303 joomla-appserv-server2go
20110303 joomla-appserv-server2go
 
บทที่ 3 ระบบ android ocr
บทที่ 3 ระบบ android ocr บทที่ 3 ระบบ android ocr
บทที่ 3 ระบบ android ocr
 
การสอบวิทยานิพนธ์
การสอบวิทยานิพนธ์การสอบวิทยานิพนธ์
การสอบวิทยานิพนธ์
 
Network
NetworkNetwork
Network
 
สิ่งที่เตรียม
สิ่งที่เตรียมสิ่งที่เตรียม
สิ่งที่เตรียม
 
61 sql server 2008 complete
61 sql server 2008 complete61 sql server 2008 complete
61 sql server 2008 complete
 
03 1-connection-tools
03 1-connection-tools03 1-connection-tools
03 1-connection-tools
 
Computer2
Computer2Computer2
Computer2
 
ป.ตรีอบรมนักศึกษา55 1
ป.ตรีอบรมนักศึกษา55 1ป.ตรีอบรมนักศึกษา55 1
ป.ตรีอบรมนักศึกษา55 1
 
Advanced Predictive Modeling with R and RapidMiner Studio 7
Advanced Predictive Modeling with R and RapidMiner Studio 7Advanced Predictive Modeling with R and RapidMiner Studio 7
Advanced Predictive Modeling with R and RapidMiner Studio 7
 
Doc1
Doc1Doc1
Doc1
 
Computer network
Computer networkComputer network
Computer network
 
Cisco packet tracer 3
Cisco packet tracer 3Cisco packet tracer 3
Cisco packet tracer 3
 
Report Thailand ICT Market 2011 and Outlook 2012
Report Thailand ICT Market 2011 and Outlook 2012Report Thailand ICT Market 2011 and Outlook 2012
Report Thailand ICT Market 2011 and Outlook 2012
 
Lab Computer Programming 1
Lab Computer Programming 1Lab Computer Programming 1
Lab Computer Programming 1
 
Server2Go เว็บพกพาตัวจริง
Server2Go เว็บพกพาตัวจริงServer2Go เว็บพกพาตัวจริง
Server2Go เว็บพกพาตัวจริง
 
การจัดการระบบเครือข่ายด้วย Management switch
การจัดการระบบเครือข่ายด้วย Management switchการจัดการระบบเครือข่ายด้วย Management switch
การจัดการระบบเครือข่ายด้วย Management switch
 
Web Accessibility Coding
Web Accessibility CodingWeb Accessibility Coding
Web Accessibility Coding
 

More from Warawut

Object-Oriented Programming 7
Object-Oriented Programming 7Object-Oriented Programming 7
Object-Oriented Programming 7
Warawut
 
Object-Oriented Programming 6
Object-Oriented Programming 6Object-Oriented Programming 6
Object-Oriented Programming 6
Warawut
 

More from Warawut (20)

Database design
Database designDatabase design
Database design
 
Business Computer Project 4
Business Computer Project 4Business Computer Project 4
Business Computer Project 4
 
Object-Oriented Programming 10
Object-Oriented Programming 10Object-Oriented Programming 10
Object-Oriented Programming 10
 
Object-Oriented Programming 9
Object-Oriented Programming 9Object-Oriented Programming 9
Object-Oriented Programming 9
 
Object-Oriented Programming 8
Object-Oriented Programming 8Object-Oriented Programming 8
Object-Oriented Programming 8
 
Object-Oriented Programming 7
Object-Oriented Programming 7Object-Oriented Programming 7
Object-Oriented Programming 7
 
Object-Oriented Programming 6
Object-Oriented Programming 6Object-Oriented Programming 6
Object-Oriented Programming 6
 
Management Information System 6
Management Information System 6Management Information System 6
Management Information System 6
 
Management Information System 5
Management Information System 5Management Information System 5
Management Information System 5
 
Management Information System 4
Management Information System 4Management Information System 4
Management Information System 4
 
Object-Oriented Programming 5
Object-Oriented Programming 5Object-Oriented Programming 5
Object-Oriented Programming 5
 
Business Computer Project 3
Business Computer Project 3Business Computer Project 3
Business Computer Project 3
 
Management Information System 3
Management Information System 3Management Information System 3
Management Information System 3
 
Business Computer Project 2
Business Computer Project 2Business Computer Project 2
Business Computer Project 2
 
Chapter 2 Strategy & Information System
Chapter 2 Strategy & Information SystemChapter 2 Strategy & Information System
Chapter 2 Strategy & Information System
 
Object-Oriented Programming 4
Object-Oriented Programming 4Object-Oriented Programming 4
Object-Oriented Programming 4
 
Business Computer Project 1
Business Computer Project 1Business Computer Project 1
Business Computer Project 1
 
Chapter 1 Organization & MIS
Chapter 1 Organization & MISChapter 1 Organization & MIS
Chapter 1 Organization & MIS
 
Object-Oriented Programming 3
Object-Oriented Programming 3Object-Oriented Programming 3
Object-Oriented Programming 3
 
Object-Oriented Programming 2
Object-Oriented Programming 2Object-Oriented Programming 2
Object-Oriented Programming 2
 

03 ado-dot-net-access

  • 1. บททบทท 3 ADO.NET3 ADO.NET กบกบ ฐานขอมลฐานขอมล AccessAccess 2003/20072003/2007 Suan Dusit Rajabhat University, Phitsanulok CampusSuan Dusit Rajabhat University, Phitsanulok Campus Mr.Warawut KhangkhanMr.Warawut Khangkhan
  • 2. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 2 เนอหาเนอหา ● ทศทางการพฒนาแอพพลเคชนดานฐานขอมล ของ VS2008 ● การพฒนาระบบงานดานฐานขอมลโดยอาศย กล./ม ADO.NET ● การเช0อมต/อกบฐานขอมล Access 2003/2007 ● การผกตดขอมล (Binding Data) ● การใชงานออบเจ5กต6 DataReader
  • 3. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 3 เนอหาเนอหา ● การใชงานเมธอด Execute ของออบเจ5กต6 Command ● การตรวจสอบโครงสรางของฐานขอมล Access 2003/2007 ● การใชงานออบเจ5กต6 Query ของฐานขอมล Access 2003/2007 ● การจดการฐานขอมล Access โดยการท:า Transaction
  • 4. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 4 ทศทางการพฒนาแอพพลเคชนทศทางการพฒนาแอพพลเคชน ดานฐานขอมลของดานฐานขอมลของ VS2008VS2008 .NET 2.0 Windows Form Application ADO.NET 2.0 ● SQL .NET 3.0/3.5 LINQ ● LINQ to Object ● LINQ to SQL ● LINQ to XML WPF Application
  • 5. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 5 การพฒนาระบบงานดานฐานการพฒนาระบบงานดานฐาน ขอมล โดยอาศยกล"#มขอมล โดยอาศยกล"#ม ADO.NETADO.NET ● เรยกใชกล./มออบเจ5กต6 ADO.NET ในขณะ ออกแบบ (Design Time) ● การเรยกใชงานกล./มออบเจ5กต6 ADO.NET โดย การเขยนโคดโดยตรง (Run Time)
  • 6. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 6 กล"#มออบเจ%กต'กล"#มออบเจ%กต' ADO.NETADO.NET
  • 10. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 10 หนาทของออบเจ%กต'หลกหนาทของออบเจ%กต'หลก แต#ละชนดแต#ละชนด ● ออบเจ%กต' Connection ท:าหนาทสรางการเช0อมต/อเขากบฐานขอมล โดย OleDbConnection เช0อมต/อกบฐานขอมล ชนด Access ส/วน SqlConnection ท:าหนาท เช0อมต/อกบฐานขอมลชนด SQL Server ● ออบเจ%กต' DataAdapter ท:าหนาทเก5บช.ดค:าสง SQL เพ0อควรขอมลออก มาจากฐานขอมล ผลลพธ6ทไดค0อ ออบเจ5กต6 DataSet
  • 11. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 11 หนาทของออบเจ%กต'หลกหนาทของออบเจ%กต'หลก แต#ละชนดแต#ละชนด ● ออบเจ%กต' DataSet ท:าหนาทเก5บผลลพธ6จากการท:าควรขอมลจาก ฐานขอมลทไดจาก ออบเจ5กต6 DataAdapter เป?นออบเจ5กต6หลกทมบทบาทและมความส:าคญ มากทส.ด ● ออบเจ%กต' Command ท:าหนาทรนช.ดค:าสง SQL ผลลพธ6ทไดค0อ ออบเจ5กต6 DataReader
  • 12. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 12 หนาทของออบเจ%กต'หลกหนาทของออบเจ%กต'หลก แต#ละชนดแต#ละชนด ● ออบเจ%กต' DataReader ท:าหนาทเก5บผลลพธ6ของการท:าควรขอมลจาก ฐานขอมล เช/นเดยวกบออบเจ5กต6 DataSet แต/ จะไดมาจาก ออบเจ5กต6 Command
  • 13. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 13 การเช0อมต/อกบฐานขอมลการเช0อมต/อกบฐานขอมล AccessAccess 2003/20072003/2007 ● ความแตกต/างกนระหว/าง Access 2003/2007 Access 2003 นามสก.ล .mdb Access 2007 นามสก.ล .accdb ● การเช0อมต/อกบฐานขอมล Access 2003 Provider=Microsoft.JET.OLEDB.4.0;data source=c:abc.mdb Access 2007 Provider=Microsoft.ACE.OLEDB.12.0;data source=c:abc.accdb;Persist Security Info=False
  • 14. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 14 การผกตดขอมลการผกตดขอมล (Binding Data)(Binding Data) ● การผกตดขอมล (Binding Data) ถ0อเป?นการ ท:างานขBนพ0Bนฐานในการแสดงขอมลออกมาจาก ฐานขอมล
  • 15. การผกตดขอมลการผกตดขอมล (Binding Data)(Binding Data) สถาปCตยกรรม ADO.NET มอย/ 2 แบบ ค0อ ● Simple Binding Data เป?นการผกตดขอมล แบบปกต ค0อ เป?นการแสดงขอมลดวย คอนโทรล DataGridView, TextBox, Label เป?นตน เป?นวธการแสดงขอมลออกมาจาก ตารางเดยว (ไม/มการเช0อมโยงกบตารางอ0นๆ) ● Complex Binding Data หร0ออาจจะเรยกว/า การท:า Lookup Table ก5ได เป?นการแสดง ขอมลทเกดจากการเช0อมโยงความสมพนธ6 ระหว/างตาราง 2 ตารางเขาดวยกน
  • 16. การใชงานออบเจ%กต'การใชงานออบเจ%กต' DataReaderDataReader ● ท:าหนาทเก5บผลควรขอมลออกมาจากฐาน ขอมล โดยทจะอ/านครBง 1 เร5คคอร6ด (record) ● สถานะเคล0อนทไปขาง (Forward-Only) เพยง อย/างเดยว ● เกดจากการควรช.ดค:าสง SQL ของออบเจ5กต6 Command ● เหมาะกบการควรขอมลขนาดเล5ก เช/น การ แสดงขอมลหร0อการอ/านค/าขEBนมา เพ0อใชเป?น เง0อนไขในการท:างาน ● สามารถรบขอมลจากออบเจ5กต6 DataSet
  • 17. การใชงานเมธอดการใชงานเมธอด ExecuteExecute ของของ ออบเจ5กต6ออบเจ5กต6 CommandCommand ● เมธอด ExecuteReader( ) ท:าหนาทรนช.ดค:าสง SQL ประเภทเรยกดหร0อ อ/านขอมล ผลการรนไดออบเจ5กต6 DataReader ● เมธอด ExecuteScalar( ) ท:าหนาทเช/นเดยวกบเมธอด ExecuteReader( ) แต/มขอแตกต/างก5ค0อ เมธอดนBส/งค/ากลบมาเพยงค/าเดยวเท/านBน ● เมธอด ExecuteQuery( ) ท:าหนาทรนช.ดค:าสง SQL ประเภทเพม แกไข หร0อลบขอมล
  • 18. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 18 ขอแตกต#างระหว#างออบเจ%กต'ขอแตกต#างระหว#างออบเจ%กต' DataReaderDataReader กบออบเจ%กต'กบออบเจ%กต' DataSetDataSet ออบเจ%กต' DataReader ● ท:าหนาทอ/านขอมลออกมาจากฐานขอมล โดยทจะอ/านครBงละ 1 เร5คคอร6ดออกมา ม สถานะเคล0อนทไปขางหนา (Forward-Only) เพยงอย/างเดยว ● ปกตแลวเกดจากการควรช.ดค:าสง SQL ของ ออบเจ5กต6 Command ส/วนออบเจ5กต6 DataSet เกดจากการควรช.ดค:าสง SQL ของออบเจ5กต6 DataAdapter
  • 19. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 19 ขอแตกต#างระหว#างออบเจ%กต'ขอแตกต#างระหว#างออบเจ%กต' DataReaderDataReader กบออบเจ%กต'กบออบเจ%กต' DataSetDataSet ออบเจ%กต' DataReader (ต#อ) ● เกดมาจากสถาปCตยกรรม Connected หมายถEง มการเช0อมต/อกบแหล/งขอมลตลอดเวลา ส/งผล ใหเม0อใชงานออบเจ5กต6 DataReader แลว ตอง ควบค.มการเปGด-ปGดของออบเจ5กต6 DataReader เองทBงหมด เพราะว/าไม/สามารถเปGดออบเจ5กต6 DataReader เกน 1 ครBงในเวลาเดยวกน
  • 20. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 20 ขอแตกต#างระหว#างออบเจ%กต'ขอแตกต#างระหว#างออบเจ%กต' DataReaderDataReader กบออบเจ%กต'กบออบเจ%กต' DataSetDataSet ออบเจ%กต' DataSet ● อ/านขอมลทBงหมดทควรดวยช.ดค:าสง SQL ออกมาแลวเก5บไวในหน/วยความจ:า จากนBนจะ น:าไปใชในรปแบบใด ก5แลวแต/ความตองการ ● สามารถจดการกบขอมลทเก5บอย/ในออบเจ5กต6 DataSet ไดมากกว/าออบเจ5กต6 DataReader
  • 21. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 21 ขอแตกต#างระหว#างออบเจ%กต'ขอแตกต#างระหว#างออบเจ%กต' DataReaderDataReader กบออบเจ%กต'กบออบเจ%กต' DataSetDataSet ออบเจ%กต' DataSet (ต#อ) ● เกดมาจากสถาปCตยกรรม Disconnected ซEง หมายถEง เม0อค.ณควรขอมลมาเก5บไวทออบ เจ5กต6 DataSet แลว ก5จะมการตดการเช0อมต/อ กบแหล/งขอมลโดยอตโนมตทนท
  • 22. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 22 การตรวจสอบโครงสรางของฐานการตรวจสอบโครงสรางของฐาน ขอมลขอมล Access 2003/2007Access 2003/2007 ● ปกตแลวเราใชกล./มออบเจ5กต6 ADO.NET ควร ขอมลออกมาจากฐานขอมล แต/ก5มการควรอก ลกษณะหนEงทไม/ตองการขอมลแต/อย/างใด แต/ ตองการตรวจสอบโครงสรางของฐานขอมล
  • 23. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 23 การใชงานออบเจ5กต6การใชงานออบเจ5กต6 QueryQuery ของของ ฐานขอมลฐานขอมล Access 2003/2007Access 2003/2007 สามารถใชงานออบเจ5กต6 Query ได 2 ลกษณะ ● การใชงานออบเจ%กต' Query แบบไม#มการ ส#งค#าตวแปร หมายถEง ช.ดค:าสง SQL ทเก5บ อย/มความสมบรณ6ในตวมนเอง โดยสามารถส/ง ผลการท:างานของช.ดค:าสง SQL ดงกล/าวออก มาไดเลย
  • 24. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 24 การใชงานออบเจ5กต6การใชงานออบเจ5กต6 QueryQuery ของของ ฐานขอมลฐานขอมล Access 2003/2007Access 2003/2007 สามารถใชงานออบเจ5กต6 Query ได 2 ลกษณะ (ต/อ) ● การใชงานออบเจ%กต' Query แบบมการส#ง ค#าตวแปร หมายถEง เม0อตองการผลการท:างาน ของช.ด SQL ทเก5บอย/ในออบเจ5กต6 Query ประเภทนB ตองตรวจสอบก/อนว/าช.ดค:าสง SQL ดงกล/าวตองการตวแปรกตว และตวแปรแต/ละ ตวเป?นขอมลชนดใด
  • 25. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 25 การจดการฐานขอมลการจดการฐานขอมล AccessAccess โดยโดย การท:าการท:า TransactionTransaction ● การท:า Transaction เป?นการเขยนโคด เพ0อรบ ประกนว/าเม0อมการประมวลผลขอมลแลว ไม/ว/า จะเป?นการเพมหร0อแกไขขอมล จะถกน:าไป กระท:ากบขอมลทอย/ในตารางจรงครบท.ก ตารางทอย/ใน Transaction เดยวกน ซEงจะมอย/ 2 สถานะเท/านBน ค0อ – สมบรณ' 100% เรยกสถานะนBว/า Commit Transaction – ลมเหลว 0% เรยกสถานะนBว/า Rollback Transaction
  • 26. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 26 หลกการท:างานของหลกการท:างานของ TransactionTransaction ● ค0อ เป?นการแกไขขอมลทอย/ใน Cache ก/อน เม0อมการ Commit Transaction จEงเขาส/ขBน ตอนการน:าขอมล ซEงถกแกไขแลวไปกระท:ากบ ขอมลทอย/ในตารางจรง แต/ในกรณทเกดการท:า Rollback Transaction ก5จะไม/กระทบกบขอมล ทอย/ในตารางจรงแต/อย/างใด เพราะเป?นการ แกไขขอมลทอย/ใน Cache นนเอง ● สามารถท:า Transaction ไดทBงฐานขอมล Access และ SQL Server
  • 27. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 27 เมธอดทเกยวกบเมธอดทเกยวกบ TransactionTransaction ● เมธอด BeginTrans( ) ของออบเจ5กต6 SqlConnection เพ0อเรมตนท:า Transaction ● เมธอด Commit( ) ของออบเจ5กต6 SqlTransaction เพ0อ Commit Transaction ● เมธอด Rollback( ) เพ0อท:า Rollback Transaction
  • 28. K.Warawut บทท 3 ADO.NET กบฐานขอมล Access 2003/2007 28 Contact usContact us Mr.Warawut KhangkhanMr.Warawut Khangkhan Social Media: http://www.facebook.com/awarawut http://twitter.com/awarawut Web Site: http://awarawut.blogspot.com E-Mail: awarawut@hotmail.com warawut_kha@dusit.ac.th Mobile: 083-0698-410