SlideShare a Scribd company logo
1 of 46
Download to read offline
Create Database
Application by using
     ADO.NET

Suan Dusit Rajabhat University, Phitsanulok Campus
                           Mr.Warawut Khangkhan
ADO.NET
 ●
     ยอมาจาก ActiveX Data Objects
 ●
     คอ เทคโนโลยการเขาถงขอมล (Data Access
     Technology) ของ .NET ทชวยใหเราเขยนโปรแกรม
     เพอเขาถงและท!างานก"บขอมลจากแหลงขอมล
     (Data Source) ประเภทตางๆ ไดอยางเรยบงายแตม
     ประส*ทธ*ภาพ




K.Warawut        Create Database Application by using ADO.NET   2
สวนประกอบการท!างานของ ADO.NET
แบงออกเป,น DataSet และ Data Provider




K.Warawut      Create Database Application by using ADO.NET   3
DataSet
 ●
     คอ ออบเจ-กต. ซงเป,นต"วแทนของขอมลทโปรแกรม
     ของเราดงมาจากฐานขอมล
 ●
     DataSet จะเก-บส!าเนา (Copy) ของขอมลสวนน"1นใน
     ฐานขอมลไวในหนวยความจ!าของเครอง Client
     (เครองทโปรแกรมของเราท!างานอย)
 ●
     การท!างานตางๆ ก"บขอมลใน DataSet จงเป,นอ*สระ
     จากฐานขอมล และเมอถงเวลาทเหมาะสมเราสามารถ
     น!าขอมลจาก DataSet ไปอ"พเดท (Update) ลงฐาน
     ขอมลได
K.Warawut         Create Database Application by using ADO.NET   4
DataSet (ตอ)
●
    เป,นรปแบบทเรยกวา Disconnected Data Access
    หรอ “การเขาถงขอมลแบบไมตองเชอมตอก"บฐาน
    ขอมล (ไวตลอดเวลา)” และเรยกขอมลใน DataSet
    วา Disconnected Data เนองจากโปรแกรมจะมการ
    เชอมตอก"บฐานขอมลเทาทจ!าเป,นเทาน"น เชน
                                    1
       –   การดงขอมล โปรแกรมจะเป4ดการเชอมตอก"บฐาน
            ขอมลเพอดงขอมลเขามาแลวป4ดการเชอมตอท"นท
            หล"งจากดงขอมลเสร-จ
       –   ส!าหร"บการแกไข เพ*ม หรอลบขอมล ก-เชนเดยวก"น
             โปรแกรมจะเชอมตอไปย"งฐานขอมลเพอร"น Query
             ของค!าส"ง UPDATE, INSERT หรอ DELETE จาก
             น"1นการเชอมตอจะถกป4ดลง
DataSet (ตอ)
 ●
     DataSet ย"งออบเจ-กต.ยอยทส!าค"ญ คอ DataTable
     และ DataRow ทเป,นต"วแทนของเทเบ*ล (ตาราง
     ขอมล) และเรคอร.ด (แถวขอมล) ตามล!าด"บ รวมถง
     DataRelation ทเป,นต"วแทนของความส"มพ"นธ.
     ระหวางเทเบ*ลใน DataSet เป,นตน




K.Warawut         Create Database Application by using ADO.NET   6
Data Provider
 ●
     เรยกเต-มๆ คอ .NET Framework Data Provider
 ●
     คอ สวนทดแลในเรองการเชอมตอก"บฐานขอมล และ
     การสง Query ไปประมวลผลย"งฐานขอมล
 ●
     Data Provider ไมใชออบเจ-กต.เดยวๆ เหมอนอยาง
     DataSet หากแตเป,นกล7มของออบเจ-กต.ทเกยวของ
     ส"มพ"นธ.ก"น ซงรวมก"นท!างานเพอเป,นต"วกลางในการ
     ร"บ-สงระหวางฐานขอมลก"บ DataSet


K.Warawut         Create Database Application by using ADO.NET   7
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 เป,นตน
K.Warawut         Create Database Application by using ADO.NET   8
Data Provider (ตอ)
จ"ดเตรยมไว 4 ชน*ดแยกตามประเภทของฐานขอมล ด"งน1
 ●
     Oracle Data Provider (หรอ OracleClient Data
     Provider) เป,น Data Provider ทถกออกแบบมา
     ส!าหร"บฐานขอมล Oracle โดยเฉพาะ
 ●
     ODBC Data Provider เป,น Data Provider ส!าหร"บ
     แหลงขอมลใดๆ ก-ตามทม ODBC Driver ใหใชใน
     การต*ดตอ


K.Warawut         Create Database Application by using ADO.NET   9
Data Provider (ตอ)
Data Provider แตละชน*ดขางตนจะประกอบไปดวย
ออบเจ-กต.ตางๆ ทท!างานรวมก"น ด"งน1
 ●
     ออบเจกต Connection ร"บผ*ดชอบในเรองการเชอม
     ตอก"บฐานขอมล
 ●
     ออบเจกต Command ท!าหนาทสงค!าส"งไปประมวล
     ผลย"งฐานขอมล ซงค!าส"งน"1นอาจเป,น Query ในภาษา
     SQL หรอเป,นการเรยกใช Stored Procedure ในฐาน
     ขอมล เป,นตน

K.Warawut         Create Database Application by using ADO.NET   10
Data Provider (ตอ)
Data Provider แตละชน*ดขางตนจะประกอบไปดวย
ออบเจ-กต.ตางๆ ทท!างานรวมก"น ด"งน1
 ●
     ออบเจกต DataAdapter ท!าหนาทดงขอมลจาก
     ฐานขอมลมาใส (fill) ลงใน DataSet และน!าขอมล
     จาก DataSet ไปอ"พเดทลงฐานขอมล




K.Warawut         Create Database Application by using ADO.NET   11
Data Provider (ตอ)
Data Provider แตละชน*ดขางตนจะประกอบไปดวย
ออบเจ-กต.ตางๆ ทท!างานรวมก"น ด"งน1
●
    ออบเจกต DataReader เป,นออบเจ-กต.ทใชท!างาน
    ก"บ Result Set ในล"กษณะ forward-only (เลอนต!า
    แหนงเรคอร.ดไปขางหนาไดอยางเดยว) และ read-
    only (อานขอมลไดอยางเดยว แตเปลยนแปลงแกไข
    ไมได) โดยระหวางทใชออบเจ-กต.น1ท!างานก"บขอมล
    ในฐานขอมล จะตองเป4ดการเชอมตอก"บฐานขอมลไว
    ตลอดเวลา จงเป,นรปแบบทเรยกวา Connected
    Data Access ซงตรงก"นขามก"บการท!างานของ
    DataSet
คลาสทเป,นตนแบบของออบเจ-กต.ท"1ง 4
                          ชอคลาสตนแบบของออบเจ-กต.
                            Connection, Command,
   ชน*ดของ Data Provider
                         DataAdapter และ DataReader
                                  ตามล!าด"บ
SQL Server Data Provider SqlCommand,
                         SqlDataAdapter และ
                         SqlDataReader โดยท"งหมดอย
                         ในเนมสเปซ
                         System.Data.SqlClient
OLEDB Data Provider      OleDbConnection,
                         OleDbCommand,
                         OleDbDataAdapter และ
                         OleDbDataReader โดยท"งหมด
                                                 1
                         อยในเนมสเปซ
                         System.Data.OleDb
Oracle Data Provider     OracleConnection,
                         OracleCommand,
                         OracleDataAdapter และ
                         OracleDataReader โดยท"งหมด1
                         อยในเนมสเปซ
                         System.Data.OracleClient
ODBC Data Provider       OdbcConnection,
                         OdbcCommand,
                         OdbcDataAdapter และ
                         OdbcDataReader โดยท"งหมด
                                               1
K.Warawut                อยในเนมสเปซ                 13
                         System.Data.Odbc
การเชอมตอกบฐานขอมล
 ●
     การเชอมตอก"บฐานขอมล Microsoft Access โดย
     ท"วไปจะใชคลาส OleDbConnection ในเนมสเปซ
     System.Data.OleDb
 ●
     การเชอมตอก"บฐานขอมล Microsoft SQL Server ก-
     จะใชคลาส SqlConnection ในเนมสเปซ
     System.Data.SqlClient




K.Warawut        Create Database Application by using ADO.NET   14
การเชอมตอกบฐานขอมล (ตอ)
 ●
     ก!าหนดรายละเอยดการเชอมตอก"บฐานขอมลทพร-อพ
     เพอร.ต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( )
K.Warawut                Create Database Application by using ADO.NET             15
                                                            Imports System.Data.OleDb
การเชอมตอกบฐานขอมล (ตอ)
 ●
     การเชอมตอก"บฐานขอมลระหวาง Access
     2003/2007
               Access 2003 นามสกล .mdb
               Access 2007 นามสกล .accdb
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            Create Database Application by using ADO.NET   16
การเชอมตอกบฐานขอมล (ตอ)

  Dim cn As New System.Data.OleDb.OleDbConnection( )
  cn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;” & _
                         “Data Source=C:NWIND.MDB”

                                       or
  Dim cn As New System.Data.OleDb.OleDbConnection( _
                       “Provider=Microsoft.Jet.OLEDB.4.0;” & _
                       “Data Source=C:NWIND.MDB”




K.Warawut            Create Database Application by using ADO.NET   17
เป4ดและป4ดการเชอมตอ
 ●
     เป4ดการเชอมตอ ใชเมธอด Open ของออบเจ-กต.
     Connection
          cn.Open( )
 ●
     ป4ดการเชอมตอ ใชเมธอด Close ของออบเจ-กต.
     Connection
          cn.Close( )




K.Warawut        Create Database Application by using ADO.NET   18
เป4ดและป4ดการเชอมตอ (ตอ)
 ●
     กรณทใช DataAdapter เป,นต"วกลางในการดง
     ขอมลจากฐานขอมลมาเก-บไวใน DataSet และสง
     ขอมลจาก DataSet ไปอ"พเดทลงฐานขอมลน"น ไม
                                           1
     จ!าเป,นตองเป4ดและป4ดการเชอมตอก"บฐานขอมลเอง
     เนองจาก DataAdapter จะเป4ดและป4ดการเชอมตอ
     ก"บฐานขอมลใหโดยอ"ตโนม"ต*




K.Warawut         Create Database Application by using ADO.NET   19
ท!างานก"บขอมลในฐานขอมลดวย
                  Command Object
 ●
     Command Object ต"วแทนของค!าส"งทใช
     ท!างานก"บฐานขอมล ซงค!าส"งทวาน1อาจเป,น Query
     ของประโยคค!าส"ง SELECT, INSERT, UPDATE
     และ DELETE ในภาษา SQL หรอเป,นการเรยกไปย"ง
     Stored Procedure ในฐานขอมลก-ได (รวมท"1งอาจ
     เป,นค!าส"งในกล7ม DDL ของภาษา SQL ทใชสราง
     เทเบ*ลใหม, แกไขโครงสรางของเทเบ*ล ฯลฯ ก-ไดเชน
     ก"น)


K.Warawut          Create Database Application by using ADO.NET   20
ท!างานก"บขอมลในฐานขอมลดวย
               Command Object (ตอ)
 ●
     Command Object อาจสรางข1นมาจากคลาส
     OleDbCommand, SqlCommand,
     OracleCommand หรอ OdbcCommand ข1นอยก"บ
     ชน*ดของ Data Provider ทเลอกใช
             Dim cm As New OleDb.OleDbCommand( )

 ●
     หล"งจากสรางออบเจ-กต. Command ข1นมาแลว จะ
     ตองก!าหนดคาใหก"บพร-อพเพอร.ต1ตางๆ ไดแก พร-อพ
     เพอร.ต1 Connection, CommandText และ (ถา
     จ!าเป,น) CommandType
K.Warawut               Create Database Application by using ADO.NET   21
ท!างานก"บขอมลในฐานขอมลดวย
               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



K.Warawut               Create Database Application by using ADO.NET   22
ท!างานก"บขอมลในฐานขอมลดวย
               Command Object (ตอ)
CommandText Properties
 ●
      ใชก!าหนดค!าส"งทจะสงไปประมวลผลย"งฐานขอมล
      เชน ถาตองการดงขอมลจาก Field CustomerID
      และ CompanyName ในเทเบ*ล Customers จะตอง
      ก!าหนดคาสตร*งทเป,นค!าส"ง SQL ใหก"บ
      CommandText Properties ของ Command
      Object
     cm.CommandText = “SELECT CustomerID, CompanyName ” & _
                      “FROM Customers”


K.Warawut            Create Database Application by using ADO.NET   23
ท!างานก"บขอมลในฐานขอมลดวย
               Command Object (ตอ)
CommandType Properties
 ●
     ใชก!าหนดวาคาสตร*ง (String) ใน CommandType
     Properties คอ ค!าส"งแบบใด โดยคาทก!าหนดได คอ
     (คาเหลาน1ถกรวบรวมไวในอน*วเมอเรช"น
     CommandType)




K.Warawut          Create Database Application by using ADO.NET   24
ท!างานก"บขอมลในฐานขอมลดวย
               Command Object (ตอ)
CommandType Properties (ตอ)
อน*วเมอเรช"น CommandType
 ●
     Text – ก!าหนดวาคาสตร*งในพร-อพเพอร.ต1
     CommandText คอประโยคค!าส"งในภาษา SQL ซง
     ฐานขอมลจะประมวลผลค!าส"ง SQL น"น คา Text น1
                                     1
     เป,นคาดฟอลต.ของพร-อพเพอร.ต1 CommandType
     ด"งน"1นถาหากคาสตร*งทก!าหนดไวทพร-อพเพอร.ต1
     CommandText คอค!าส"ง SQL ก-ไมจ!าเป,นตองก!า
     หนดพร-อพเพอร.ต1 CommandType
K.Warawut          Create Database Application by using ADO.NET   25
ท!างานก"บขอมลในฐานขอมลดวย
               Command Object (ตอ)
CommandType Properties (ตอ)
อน*วเมอเรช"น CommandType (ตอ)
 ●
     StoredProcedure – ก!าหนดวาคาสตร*งใน
     พร-อพเพอร.ต1 CommandText คอชอ Stored
     Procedure ในฐานขอมล ซงจะท!าให Stored
     Procedure น"นถกประมวลผล
                  1




K.Warawut          Create Database Application by using ADO.NET   26
ท!างานก"บขอมลในฐานขอมลดวย
               Command Object (ตอ)
CommandType Properties (ตอ)
อน*วเมอเรช"น CommandType (ตอ)
 ●
     TableDirect – ก!าหนดวาคาสตร*งในพร-อพเพอร.ต1
     CommandText คอชอเทเบ*ลในฐานขอมล ซง
     Command Object จะใหผลล"พธ.เป,น Result Set
     ของขอมลท7ก field และท7ก record ในเทเบ*ลน"1น




K.Warawut          Create Database Application by using ADO.NET   27
ท!างานก"บขอมลในฐานขอมลดวย
               Command Object (ตอ)
 ●
     สามารถก!าหนด CommandText Properites และ
     Connection ไปพรอมก"บการสราง Command
     Object ไดเลย
            Dim strSQL As String = “SELECT * FROM Customers”
            Dim cm As New OleDb.Command(strSQL, cn)




K.Warawut                Create Database Application by using ADO.NET   28
ประมวลผลค!าส"งใน Command
                     Object
หล"งจากก!าหนดพร-อพเพอร.ต1 Connection,
CommandText และ CommandType แลว ใหเรยกใช
เมธอด (Method) ใดเมธอดหนงตอไปน1ของ
Command Object เพอสงค!าส"งไปประมวลผลย"งฐาน
ขอมล
 ●   ExecuteNonQuery
 ●   ExecuteScalar
 ●   ExecuteReader

K.Warawut         Create Database Application by using ADO.NET   29
ประมวลผลค!าส"งใน Command
                   Object (ตอ)
 ●
     ExecuteNonQuery Method จะสงค!าส"งไป
     ประมวลผลแตไมมคนคาใดๆ กล"บมาให เราจงม"กใช
     เมธอดน1ประมวลผลค!าส"ง SQL หรอ Stored
     Procedure ทเป,นการเพ*ม ลบ และแกไขขอมล
 ●
     ExecuteScalar Method จะใหผลล"พธ.เป,นขอมล
     ฟ4ลด.แรกของเรคอร.ดแรกใน Result Set ไมวา
     Result Set ทไดจะมกฟ4ลด.และกเรคอร.ดก-ตาม จง
     เหมาะส!าหร"บการประมวลผลค!าส"ง SQL หรอ Stored
     Procedure ทใชหาผลสร7ปของขอมล
K.Warawut         Create Database Application by using ADO.NET   30
ประมวลผลค!าส"งใน Command
                   Object (ตอ)
 ●
     ExecuteReader Method จะใหผลล"พธ.เป,นออบ
     เจ-กต. DataReader ทใชเขาถง Result Set ใน
     ล"กษณะ forward-only และ read-only




K.Warawut         Create Database Application by using ADO.NET   31
การใชงาน DataReader
สราง DataReader
 ●
     DataReader Object คอ ออบเจ-กต.ของคลาส
     OleDbDataReader, SqlDataReader,
     OracleDataReader หรอ OdbcDataReader ข1นอย
     ก"บชน*ด Data Provider ทใช
 ●
     DataReader Object จะไดมาจากการเรยก
     ExecuteReader Method ของ Command Object
     เทาน"น
          1                         ไมระบค สง New
            Dim dr As OleDb.OleDbDataReader                           เพอสร งออบเจกต
            Dr = cm.ExecuteReader( )
K.Warawut              Create Database Application by using ADO.NET                    32
การใชงาน DataReader (ตอ)
ใช DataReader เขาถงขอมลใน Result Set
 ●
     เมอตองการเขาถงขอมลใน Result Set จะตองเรยก
     เมธอด Read ของ DataReader เพออานขอมลของ
     เรคอร.ดแรกเขามาเก-บไวใน DataReader ซงถาหาก
     เมธอด Read สามารถอานเรคอร.ดมาได ม"นจะให
     ผลล"พธ.เป,นคา True พรอมท"1งขย"บต"วช1ไปย"งเรคอร.ด
     ถ"ดไป
  Do While dr.Read( )
       'โคดทใชท ง นกบแตละเรคอรดใน result set ทถ$กอ นม เกบไวใน DataReader
  Loop
K.Warawut               Create Database Application by using ADO.NET   33
การใชงาน DataReader (ตอ)
พรอพเพอรต Item ของ DataReader
 ●
      รปแบบ: datareader.Item(field)

      datareader ออบเจกต DataReader
      field      ชอหรอหมายเลขลาดบของฟลดทตองการเขาถ!งขอม"ล
     While dr.Read( )
        Dim myObject As Object = dr.Item(3)
        Dim myOtherObject As Object = dr.Item(“CustomerID”)
     Loop While
     MsgBox(dr.Item(“CustomerID”).ToString( ))

K.Warawut               Create Database Application by using ADO.NET   34
การใชงาน DataReader (ตอ)
ป!ด DataReader
 ●
     เรยกเมธอด Close
            dr.Close( )




K.Warawut                 Create Database Application by using ADO.NET   35
Example:

            DataReaderDemo Projects



K.Warawut         Create Database Application by using ADO.NET   36
การท!างานก"บ Query ทร"บ Parameter
 ●
     บางคร"1งเราไมรค!าส"ง SQL ทจะสงไปประมวลผลย"ง
     ฐานขอมลจนกวาจะถงชวง Run Time เชน เราอาจ
     สรางหนาจอใหผใชคนหาชอส*นคาในบร*ษ"ทของเรา
     ซงค!าส"ง SQL ทใชมล"กษณะ ด"งน1
 SELECT * FROM Products WHERE ProductName Like ค                 ทใชคนห




K.Warawut         Create Database Application by using ADO.NET            37
Example:

            SearchDemo Projects



K.Warawut       Create Database Application by using ADO.NET   38
การท!างานก"บ Query ทร"บ Parameter
               (ตอ)
 ●
     การใชค!าส"ง SQL ทมการร"บ Parameter โดยถาเป,น
     ค!าส"ง SQL ทจะสงไปประมวลผลย"งฐานขอมล
     Microsoft Access ใหระบ7เครองหมายค!าถาม (?) ลง
     ไปในค!าส"งตรงต!าแหนงทตองการใหแทนดวยคาของ
     Parameter เชน
            SELECT * FROM Products WHERE ProductName Like ?

 ●
     จากน"1นใหสราง Parameter ข1นมาแลวก!าหนดคาตาม
     ทตองการ กอนจะสงค!าสงไปประมวลผล

K.Warawut               Create Database Application by using ADO.NET   39
การท!างานก"บ Query ทร"บ Parameter
               (ตอ)
สรางพาราม#เตอร
●
     พาราม*เตอร.ของค!าส"ง SQL คอ ออบเจ-กต.ของคลาส
     OleDbParameter, SqlParameter,
     OracleParameter หรอ OdbcParameter ข1นอยก"บ
     ชน*ดของ Data Provider ทใช ในกรณจะตองใช
     คลาส OleDbParameter ซงคอนสตร"คเตอร.ของม"นม
     รปแบบการใชงานรปแบบด"งน1
    Format: OleDbParameter(name, value)
    name        ชอ parameter
    value       ค$าทกาหนดให parameter
    Dim param As New OleDbParameter(“product_name”, “Coffee”)
การท!างานก"บ Query ทร"บ Parameter
               (ตอ)
เพ#ม Parameter เขาไปในคอลเลคชน Parameters
 ●
     หล"งจากสราง Parameter มาแลวจะตองเพ*มเขาไป
     ในคอลเล-คช"น Parameters ของ Command Object
     ดวย จงจะท!าใหคาของ Parameter น"นถกแทนลงใน
                                    1
     ค!าส"ง SQL
 ●
     การเพ*ม Parameter ท!าไดโดยเรยกเมธอด Add ของ
     คอลเล-คช"น Parameters ใน Command Object
            cm.Parameters.Add(param)


K.Warawut                Create Database Application by using ADO.NET   41
การท!างานก"บ Query ทร"บ Parameter
               (ตอ)
เพ#ม Parameter เขาไปในคอลเลคชน Parameters
 ●
     หรออาจเรยกเมธอด AddWithValue เพอก!าหนดชอ
     และคาของ Parameter เลยก-ได ซงถาใชเมธอดน1 ก-
     ไมตองสรางออบเจ-กต.ของคลาส OleDbParameter
     ข1นมากอน
        cm.Parameters.AddWithValue(“product_name”, “Coffee”)




K.Warawut             Create Database Application by using ADO.NET   42
การท!างานก"บ Query ทร"บ Parameter
               (ตอ)
เพ#ม Parameter เขาไปในคอลเลคชน Parameters
 ●
     ถาหากค!าส"ง SQL มการร"บ Parameter มากกวา 1
     คา จะตองเพ*ม Parameter เขาไปในคอลเล-คช"น
     Parameters ตามล!าด"บของเครองหมาย ? ทระบ7ใน
     ค!าส"ง SQL ด"งน"1นจะเห-นไดวาชอ Parameter ไมม
     ความส!าค"ญเลย




K.Warawut         Create Database Application by using ADO.NET   43
การท!างานก"บ Query ทร"บ Parameter
                 (ตอ)
 เพ#ม Parameter เขาไปในคอลเลคชน Parameters
  ●
      แตหากเป,นการสงค!าส"ง SQL ไปประมวลผลย"งฐาน
      ขอมล MS SQL Server ดวยออบเจ-กต.
      SqlCommand เราจะระบ7 Parameter แบบมชอ
      (Named Parameter) ลงในค!าส"ง SQL แทนทจะ
      เป,นเครองหมาย ?
SELECT * FROM Products WHERE ProductName LIKE @product_name




 K.Warawut          Create Database Application by using ADO.NET   44
Example:

        SearchParamDemo Projects



K.Warawut     Create Database Application by using ADO.NET   45
Contact us
            Mr.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:
     awarawut@hotmail.com
     warawut_kha@dusit.ac.th
 ●   Mobile:
     083-0698-410
K.Warawut           Create Database Application by using ADO.NET   46

More Related Content

Similar to 03 2-create-db-application-ado-dot-net

ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวา
Thanachart Numnonda
 
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
Sarawut Panchon
 
Hardware
HardwareHardware
Hardware
sa
 
Database
DatabaseDatabase
Database
sa
 
Javacentrix com chap10-0
Javacentrix com chap10-0Javacentrix com chap10-0
Javacentrix com chap10-0
Theeravaj Tum
 
Com element [compatibility mode]
Com element [compatibility mode]Com element [compatibility mode]
Com element [compatibility mode]
twatfangmin
 

Similar to 03 2-create-db-application-ado-dot-net (20)

ความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวาความรู้เบื้องต้นภาษาจาวา
ความรู้เบื้องต้นภาษาจาวา
 
Wordpress 3.5 -install-appserv
Wordpress 3.5 -install-appservWordpress 3.5 -install-appserv
Wordpress 3.5 -install-appserv
 
Java Programming [1/12] : Introduction
Java Programming [1/12] : IntroductionJava Programming [1/12] : Introduction
Java Programming [1/12] : Introduction
 
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
บทที่ 2 (21 02-56) okรันเลขแล้ว(แก้เหมายเลขหน้าด้วย ตั้งแต่หน้า 9 เป็นต้นไป )...
 
Hardware
HardwareHardware
Hardware
 
Proposal
ProposalProposal
Proposal
 
php5new
php5newphp5new
php5new
 
Component Com
Component ComComponent Com
Component Com
 
Greenstone Installation
Greenstone InstallationGreenstone Installation
Greenstone Installation
 
Building ec
Building ecBuilding ec
Building ec
 
joomla-2-5-install-appserv
joomla-2-5-install-appservjoomla-2-5-install-appserv
joomla-2-5-install-appserv
 
OSS & Freeware for Library @ Laos
OSS & Freeware for Library @ LaosOSS & Freeware for Library @ Laos
OSS & Freeware for Library @ Laos
 
Database
DatabaseDatabase
Database
 
Open doc คำจำกัดความใหม่ของระบบเปิด
Open doc คำจำกัดความใหม่ของระบบเปิดOpen doc คำจำกัดความใหม่ของระบบเปิด
Open doc คำจำกัดความใหม่ของระบบเปิด
 
Python Programming for Lecturer_RUS_Nonthaburi 17may2019
Python Programming for Lecturer_RUS_Nonthaburi 17may2019Python Programming for Lecturer_RUS_Nonthaburi 17may2019
Python Programming for Lecturer_RUS_Nonthaburi 17may2019
 
650 1
650 1650 1
650 1
 
Javacentrix com chap10-0
Javacentrix com chap10-0Javacentrix com chap10-0
Javacentrix com chap10-0
 
Com element [compatibility mode]
Com element [compatibility mode]Com element [compatibility mode]
Com element [compatibility mode]
 
Dw ch08 display_records
Dw ch08 display_recordsDw ch08 display_records
Dw ch08 display_records
 
20110303 joomla-appserv-server2go
20110303 joomla-appserv-server2go20110303 joomla-appserv-server2go
20110303 joomla-appserv-server2go
 

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 2-create-db-application-ado-dot-net

  • 1. Create Database Application by using ADO.NET Suan Dusit Rajabhat University, Phitsanulok Campus Mr.Warawut Khangkhan
  • 2. ADO.NET ● ยอมาจาก ActiveX Data Objects ● คอ เทคโนโลยการเขาถงขอมล (Data Access Technology) ของ .NET ทชวยใหเราเขยนโปรแกรม เพอเขาถงและท!างานก"บขอมลจากแหลงขอมล (Data Source) ประเภทตางๆ ไดอยางเรยบงายแตม ประส*ทธ*ภาพ K.Warawut Create Database Application by using ADO.NET 2
  • 3. สวนประกอบการท!างานของ ADO.NET แบงออกเป,น DataSet และ Data Provider K.Warawut Create Database Application by using ADO.NET 3
  • 4. DataSet ● คอ ออบเจ-กต. ซงเป,นต"วแทนของขอมลทโปรแกรม ของเราดงมาจากฐานขอมล ● DataSet จะเก-บส!าเนา (Copy) ของขอมลสวนน"1นใน ฐานขอมลไวในหนวยความจ!าของเครอง Client (เครองทโปรแกรมของเราท!างานอย) ● การท!างานตางๆ ก"บขอมลใน DataSet จงเป,นอ*สระ จากฐานขอมล และเมอถงเวลาทเหมาะสมเราสามารถ น!าขอมลจาก DataSet ไปอ"พเดท (Update) ลงฐาน ขอมลได K.Warawut Create Database Application by using ADO.NET 4
  • 5. DataSet (ตอ) ● เป,นรปแบบทเรยกวา Disconnected Data Access หรอ “การเขาถงขอมลแบบไมตองเชอมตอก"บฐาน ขอมล (ไวตลอดเวลา)” และเรยกขอมลใน DataSet วา Disconnected Data เนองจากโปรแกรมจะมการ เชอมตอก"บฐานขอมลเทาทจ!าเป,นเทาน"น เชน 1 – การดงขอมล โปรแกรมจะเป4ดการเชอมตอก"บฐาน ขอมลเพอดงขอมลเขามาแลวป4ดการเชอมตอท"นท หล"งจากดงขอมลเสร-จ – ส!าหร"บการแกไข เพ*ม หรอลบขอมล ก-เชนเดยวก"น โปรแกรมจะเชอมตอไปย"งฐานขอมลเพอร"น Query ของค!าส"ง UPDATE, INSERT หรอ DELETE จาก น"1นการเชอมตอจะถกป4ดลง
  • 6. DataSet (ตอ) ● DataSet ย"งออบเจ-กต.ยอยทส!าค"ญ คอ DataTable และ DataRow ทเป,นต"วแทนของเทเบ*ล (ตาราง ขอมล) และเรคอร.ด (แถวขอมล) ตามล!าด"บ รวมถง DataRelation ทเป,นต"วแทนของความส"มพ"นธ. ระหวางเทเบ*ลใน DataSet เป,นตน K.Warawut Create Database Application by using ADO.NET 6
  • 7. Data Provider ● เรยกเต-มๆ คอ .NET Framework Data Provider ● คอ สวนทดแลในเรองการเชอมตอก"บฐานขอมล และ การสง Query ไปประมวลผลย"งฐานขอมล ● Data Provider ไมใชออบเจ-กต.เดยวๆ เหมอนอยาง DataSet หากแตเป,นกล7มของออบเจ-กต.ทเกยวของ ส"มพ"นธ.ก"น ซงรวมก"นท!างานเพอเป,นต"วกลางในการ ร"บ-สงระหวางฐานขอมลก"บ DataSet K.Warawut Create Database Application by using ADO.NET 7
  • 8. 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 เป,นตน K.Warawut Create Database Application by using ADO.NET 8
  • 9. Data Provider (ตอ) จ"ดเตรยมไว 4 ชน*ดแยกตามประเภทของฐานขอมล ด"งน1 ● Oracle Data Provider (หรอ OracleClient Data Provider) เป,น Data Provider ทถกออกแบบมา ส!าหร"บฐานขอมล Oracle โดยเฉพาะ ● ODBC Data Provider เป,น Data Provider ส!าหร"บ แหลงขอมลใดๆ ก-ตามทม ODBC Driver ใหใชใน การต*ดตอ K.Warawut Create Database Application by using ADO.NET 9
  • 10. Data Provider (ตอ) Data Provider แตละชน*ดขางตนจะประกอบไปดวย ออบเจ-กต.ตางๆ ทท!างานรวมก"น ด"งน1 ● ออบเจกต Connection ร"บผ*ดชอบในเรองการเชอม ตอก"บฐานขอมล ● ออบเจกต Command ท!าหนาทสงค!าส"งไปประมวล ผลย"งฐานขอมล ซงค!าส"งน"1นอาจเป,น Query ในภาษา SQL หรอเป,นการเรยกใช Stored Procedure ในฐาน ขอมล เป,นตน K.Warawut Create Database Application by using ADO.NET 10
  • 11. Data Provider (ตอ) Data Provider แตละชน*ดขางตนจะประกอบไปดวย ออบเจ-กต.ตางๆ ทท!างานรวมก"น ด"งน1 ● ออบเจกต DataAdapter ท!าหนาทดงขอมลจาก ฐานขอมลมาใส (fill) ลงใน DataSet และน!าขอมล จาก DataSet ไปอ"พเดทลงฐานขอมล K.Warawut Create Database Application by using ADO.NET 11
  • 12. Data Provider (ตอ) Data Provider แตละชน*ดขางตนจะประกอบไปดวย ออบเจ-กต.ตางๆ ทท!างานรวมก"น ด"งน1 ● ออบเจกต DataReader เป,นออบเจ-กต.ทใชท!างาน ก"บ Result Set ในล"กษณะ forward-only (เลอนต!า แหนงเรคอร.ดไปขางหนาไดอยางเดยว) และ read- only (อานขอมลไดอยางเดยว แตเปลยนแปลงแกไข ไมได) โดยระหวางทใชออบเจ-กต.น1ท!างานก"บขอมล ในฐานขอมล จะตองเป4ดการเชอมตอก"บฐานขอมลไว ตลอดเวลา จงเป,นรปแบบทเรยกวา Connected Data Access ซงตรงก"นขามก"บการท!างานของ DataSet
  • 13. คลาสทเป,นตนแบบของออบเจ-กต.ท"1ง 4 ชอคลาสตนแบบของออบเจ-กต. Connection, Command, ชน*ดของ Data Provider DataAdapter และ DataReader ตามล!าด"บ SQL Server Data Provider SqlCommand, SqlDataAdapter และ SqlDataReader โดยท"งหมดอย ในเนมสเปซ System.Data.SqlClient OLEDB Data Provider OleDbConnection, OleDbCommand, OleDbDataAdapter และ OleDbDataReader โดยท"งหมด 1 อยในเนมสเปซ System.Data.OleDb Oracle Data Provider OracleConnection, OracleCommand, OracleDataAdapter และ OracleDataReader โดยท"งหมด1 อยในเนมสเปซ System.Data.OracleClient ODBC Data Provider OdbcConnection, OdbcCommand, OdbcDataAdapter และ OdbcDataReader โดยท"งหมด 1 K.Warawut อยในเนมสเปซ 13 System.Data.Odbc
  • 14. การเชอมตอกบฐานขอมล ● การเชอมตอก"บฐานขอมล Microsoft Access โดย ท"วไปจะใชคลาส OleDbConnection ในเนมสเปซ System.Data.OleDb ● การเชอมตอก"บฐานขอมล Microsoft SQL Server ก- จะใชคลาส SqlConnection ในเนมสเปซ System.Data.SqlClient K.Warawut Create Database Application by using ADO.NET 14
  • 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( ) K.Warawut Create Database Application by using ADO.NET 15 Imports System.Data.OleDb
  • 16. การเชอมตอกบฐานขอมล (ตอ) ● การเชอมตอก"บฐานขอมลระหวาง Access 2003/2007 Access 2003 นามสกล .mdb Access 2007 นามสกล .accdb 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 Create Database Application by using ADO.NET 16
  • 17. การเชอมตอกบฐานขอมล (ตอ) Dim cn As New System.Data.OleDb.OleDbConnection( ) cn.ConnectionString = “Provider=Microsoft.Jet.OLEDB.4.0;” & _ “Data Source=C:NWIND.MDB” or Dim cn As New System.Data.OleDb.OleDbConnection( _ “Provider=Microsoft.Jet.OLEDB.4.0;” & _ “Data Source=C:NWIND.MDB” K.Warawut Create Database Application by using ADO.NET 17
  • 18. เป4ดและป4ดการเชอมตอ ● เป4ดการเชอมตอ ใชเมธอด Open ของออบเจ-กต. Connection cn.Open( ) ● ป4ดการเชอมตอ ใชเมธอด Close ของออบเจ-กต. Connection cn.Close( ) K.Warawut Create Database Application by using ADO.NET 18
  • 19. เป4ดและป4ดการเชอมตอ (ตอ) ● กรณทใช DataAdapter เป,นต"วกลางในการดง ขอมลจากฐานขอมลมาเก-บไวใน DataSet และสง ขอมลจาก DataSet ไปอ"พเดทลงฐานขอมลน"น ไม 1 จ!าเป,นตองเป4ดและป4ดการเชอมตอก"บฐานขอมลเอง เนองจาก DataAdapter จะเป4ดและป4ดการเชอมตอ ก"บฐานขอมลใหโดยอ"ตโนม"ต* K.Warawut Create Database Application by using ADO.NET 19
  • 20. ท!างานก"บขอมลในฐานขอมลดวย Command Object ● Command Object ต"วแทนของค!าส"งทใช ท!างานก"บฐานขอมล ซงค!าส"งทวาน1อาจเป,น Query ของประโยคค!าส"ง SELECT, INSERT, UPDATE และ DELETE ในภาษา SQL หรอเป,นการเรยกไปย"ง Stored Procedure ในฐานขอมลก-ได (รวมท"1งอาจ เป,นค!าส"งในกล7ม DDL ของภาษา SQL ทใชสราง เทเบ*ลใหม, แกไขโครงสรางของเทเบ*ล ฯลฯ ก-ไดเชน ก"น) K.Warawut Create Database Application by using ADO.NET 20
  • 21. ท!างานก"บขอมลในฐานขอมลดวย Command Object (ตอ) ● Command Object อาจสรางข1นมาจากคลาส OleDbCommand, SqlCommand, OracleCommand หรอ OdbcCommand ข1นอยก"บ ชน*ดของ Data Provider ทเลอกใช Dim cm As New OleDb.OleDbCommand( ) ● หล"งจากสรางออบเจ-กต. Command ข1นมาแลว จะ ตองก!าหนดคาใหก"บพร-อพเพอร.ต1ตางๆ ไดแก พร-อพ เพอร.ต1 Connection, CommandText และ (ถา จ!าเป,น) CommandType K.Warawut Create Database Application by using ADO.NET 21
  • 22. ท!างานก"บขอมลในฐานขอมลดวย 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 K.Warawut Create Database Application by using ADO.NET 22
  • 23. ท!างานก"บขอมลในฐานขอมลดวย Command Object (ตอ) CommandText Properties ● ใชก!าหนดค!าส"งทจะสงไปประมวลผลย"งฐานขอมล เชน ถาตองการดงขอมลจาก Field CustomerID และ CompanyName ในเทเบ*ล Customers จะตอง ก!าหนดคาสตร*งทเป,นค!าส"ง SQL ใหก"บ CommandText Properties ของ Command Object cm.CommandText = “SELECT CustomerID, CompanyName ” & _ “FROM Customers” K.Warawut Create Database Application by using ADO.NET 23
  • 24. ท!างานก"บขอมลในฐานขอมลดวย Command Object (ตอ) CommandType Properties ● ใชก!าหนดวาคาสตร*ง (String) ใน CommandType Properties คอ ค!าส"งแบบใด โดยคาทก!าหนดได คอ (คาเหลาน1ถกรวบรวมไวในอน*วเมอเรช"น CommandType) K.Warawut Create Database Application by using ADO.NET 24
  • 25. ท!างานก"บขอมลในฐานขอมลดวย Command Object (ตอ) CommandType Properties (ตอ) อน*วเมอเรช"น CommandType ● Text – ก!าหนดวาคาสตร*งในพร-อพเพอร.ต1 CommandText คอประโยคค!าส"งในภาษา SQL ซง ฐานขอมลจะประมวลผลค!าส"ง SQL น"น คา Text น1 1 เป,นคาดฟอลต.ของพร-อพเพอร.ต1 CommandType ด"งน"1นถาหากคาสตร*งทก!าหนดไวทพร-อพเพอร.ต1 CommandText คอค!าส"ง SQL ก-ไมจ!าเป,นตองก!า หนดพร-อพเพอร.ต1 CommandType K.Warawut Create Database Application by using ADO.NET 25
  • 26. ท!างานก"บขอมลในฐานขอมลดวย Command Object (ตอ) CommandType Properties (ตอ) อน*วเมอเรช"น CommandType (ตอ) ● StoredProcedure – ก!าหนดวาคาสตร*งใน พร-อพเพอร.ต1 CommandText คอชอ Stored Procedure ในฐานขอมล ซงจะท!าให Stored Procedure น"นถกประมวลผล 1 K.Warawut Create Database Application by using ADO.NET 26
  • 27. ท!างานก"บขอมลในฐานขอมลดวย Command Object (ตอ) CommandType Properties (ตอ) อน*วเมอเรช"น CommandType (ตอ) ● TableDirect – ก!าหนดวาคาสตร*งในพร-อพเพอร.ต1 CommandText คอชอเทเบ*ลในฐานขอมล ซง Command Object จะใหผลล"พธ.เป,น Result Set ของขอมลท7ก field และท7ก record ในเทเบ*ลน"1น K.Warawut Create Database Application by using ADO.NET 27
  • 28. ท!างานก"บขอมลในฐานขอมลดวย Command Object (ตอ) ● สามารถก!าหนด CommandText Properites และ Connection ไปพรอมก"บการสราง Command Object ไดเลย Dim strSQL As String = “SELECT * FROM Customers” Dim cm As New OleDb.Command(strSQL, cn) K.Warawut Create Database Application by using ADO.NET 28
  • 29. ประมวลผลค!าส"งใน Command Object หล"งจากก!าหนดพร-อพเพอร.ต1 Connection, CommandText และ CommandType แลว ใหเรยกใช เมธอด (Method) ใดเมธอดหนงตอไปน1ของ Command Object เพอสงค!าส"งไปประมวลผลย"งฐาน ขอมล ● ExecuteNonQuery ● ExecuteScalar ● ExecuteReader K.Warawut Create Database Application by using ADO.NET 29
  • 30. ประมวลผลค!าส"งใน Command Object (ตอ) ● ExecuteNonQuery Method จะสงค!าส"งไป ประมวลผลแตไมมคนคาใดๆ กล"บมาให เราจงม"กใช เมธอดน1ประมวลผลค!าส"ง SQL หรอ Stored Procedure ทเป,นการเพ*ม ลบ และแกไขขอมล ● ExecuteScalar Method จะใหผลล"พธ.เป,นขอมล ฟ4ลด.แรกของเรคอร.ดแรกใน Result Set ไมวา Result Set ทไดจะมกฟ4ลด.และกเรคอร.ดก-ตาม จง เหมาะส!าหร"บการประมวลผลค!าส"ง SQL หรอ Stored Procedure ทใชหาผลสร7ปของขอมล K.Warawut Create Database Application by using ADO.NET 30
  • 31. ประมวลผลค!าส"งใน Command Object (ตอ) ● ExecuteReader Method จะใหผลล"พธ.เป,นออบ เจ-กต. DataReader ทใชเขาถง Result Set ใน ล"กษณะ forward-only และ read-only K.Warawut Create Database Application by using ADO.NET 31
  • 32. การใชงาน DataReader สราง DataReader ● DataReader Object คอ ออบเจ-กต.ของคลาส OleDbDataReader, SqlDataReader, OracleDataReader หรอ OdbcDataReader ข1นอย ก"บชน*ด Data Provider ทใช ● DataReader Object จะไดมาจากการเรยก ExecuteReader Method ของ Command Object เทาน"น 1 ไมระบค สง New Dim dr As OleDb.OleDbDataReader เพอสร งออบเจกต Dr = cm.ExecuteReader( ) K.Warawut Create Database Application by using ADO.NET 32
  • 33. การใชงาน DataReader (ตอ) ใช DataReader เขาถงขอมลใน Result Set ● เมอตองการเขาถงขอมลใน Result Set จะตองเรยก เมธอด Read ของ DataReader เพออานขอมลของ เรคอร.ดแรกเขามาเก-บไวใน DataReader ซงถาหาก เมธอด Read สามารถอานเรคอร.ดมาได ม"นจะให ผลล"พธ.เป,นคา True พรอมท"1งขย"บต"วช1ไปย"งเรคอร.ด ถ"ดไป Do While dr.Read( ) 'โคดทใชท ง นกบแตละเรคอรดใน result set ทถ$กอ นม เกบไวใน DataReader Loop K.Warawut Create Database Application by using ADO.NET 33
  • 34. การใชงาน DataReader (ตอ) พรอพเพอรต Item ของ DataReader ● รปแบบ: datareader.Item(field) datareader ออบเจกต DataReader field ชอหรอหมายเลขลาดบของฟลดทตองการเขาถ!งขอม"ล While dr.Read( ) Dim myObject As Object = dr.Item(3) Dim myOtherObject As Object = dr.Item(“CustomerID”) Loop While MsgBox(dr.Item(“CustomerID”).ToString( )) K.Warawut Create Database Application by using ADO.NET 34
  • 35. การใชงาน DataReader (ตอ) ป!ด DataReader ● เรยกเมธอด Close dr.Close( ) K.Warawut Create Database Application by using ADO.NET 35
  • 36. Example: DataReaderDemo Projects K.Warawut Create Database Application by using ADO.NET 36
  • 37. การท!างานก"บ Query ทร"บ Parameter ● บางคร"1งเราไมรค!าส"ง SQL ทจะสงไปประมวลผลย"ง ฐานขอมลจนกวาจะถงชวง Run Time เชน เราอาจ สรางหนาจอใหผใชคนหาชอส*นคาในบร*ษ"ทของเรา ซงค!าส"ง SQL ทใชมล"กษณะ ด"งน1 SELECT * FROM Products WHERE ProductName Like ค ทใชคนห K.Warawut Create Database Application by using ADO.NET 37
  • 38. Example: SearchDemo Projects K.Warawut Create Database Application by using ADO.NET 38
  • 39. การท!างานก"บ Query ทร"บ Parameter (ตอ) ● การใชค!าส"ง SQL ทมการร"บ Parameter โดยถาเป,น ค!าส"ง SQL ทจะสงไปประมวลผลย"งฐานขอมล Microsoft Access ใหระบ7เครองหมายค!าถาม (?) ลง ไปในค!าส"งตรงต!าแหนงทตองการใหแทนดวยคาของ Parameter เชน SELECT * FROM Products WHERE ProductName Like ? ● จากน"1นใหสราง Parameter ข1นมาแลวก!าหนดคาตาม ทตองการ กอนจะสงค!าสงไปประมวลผล K.Warawut Create Database Application by using ADO.NET 39
  • 40. การท!างานก"บ Query ทร"บ Parameter (ตอ) สรางพาราม#เตอร ● พาราม*เตอร.ของค!าส"ง SQL คอ ออบเจ-กต.ของคลาส OleDbParameter, SqlParameter, OracleParameter หรอ OdbcParameter ข1นอยก"บ ชน*ดของ Data Provider ทใช ในกรณจะตองใช คลาส OleDbParameter ซงคอนสตร"คเตอร.ของม"นม รปแบบการใชงานรปแบบด"งน1 Format: OleDbParameter(name, value) name ชอ parameter value ค$าทกาหนดให parameter Dim param As New OleDbParameter(“product_name”, “Coffee”)
  • 41. การท!างานก"บ Query ทร"บ Parameter (ตอ) เพ#ม Parameter เขาไปในคอลเลคชน Parameters ● หล"งจากสราง Parameter มาแลวจะตองเพ*มเขาไป ในคอลเล-คช"น Parameters ของ Command Object ดวย จงจะท!าใหคาของ Parameter น"นถกแทนลงใน 1 ค!าส"ง SQL ● การเพ*ม Parameter ท!าไดโดยเรยกเมธอด Add ของ คอลเล-คช"น Parameters ใน Command Object cm.Parameters.Add(param) K.Warawut Create Database Application by using ADO.NET 41
  • 42. การท!างานก"บ Query ทร"บ Parameter (ตอ) เพ#ม Parameter เขาไปในคอลเลคชน Parameters ● หรออาจเรยกเมธอด AddWithValue เพอก!าหนดชอ และคาของ Parameter เลยก-ได ซงถาใชเมธอดน1 ก- ไมตองสรางออบเจ-กต.ของคลาส OleDbParameter ข1นมากอน cm.Parameters.AddWithValue(“product_name”, “Coffee”) K.Warawut Create Database Application by using ADO.NET 42
  • 43. การท!างานก"บ Query ทร"บ Parameter (ตอ) เพ#ม Parameter เขาไปในคอลเลคชน Parameters ● ถาหากค!าส"ง SQL มการร"บ Parameter มากกวา 1 คา จะตองเพ*ม Parameter เขาไปในคอลเล-คช"น Parameters ตามล!าด"บของเครองหมาย ? ทระบ7ใน ค!าส"ง SQL ด"งน"1นจะเห-นไดวาชอ Parameter ไมม ความส!าค"ญเลย K.Warawut Create Database Application by using ADO.NET 43
  • 44. การท!างานก"บ Query ทร"บ Parameter (ตอ) เพ#ม Parameter เขาไปในคอลเลคชน Parameters ● แตหากเป,นการสงค!าส"ง SQL ไปประมวลผลย"งฐาน ขอมล MS SQL Server ดวยออบเจ-กต. SqlCommand เราจะระบ7 Parameter แบบมชอ (Named Parameter) ลงในค!าส"ง SQL แทนทจะ เป,นเครองหมาย ? SELECT * FROM Products WHERE ProductName LIKE @product_name K.Warawut Create Database Application by using ADO.NET 44
  • 45. Example: SearchParamDemo Projects K.Warawut Create Database Application by using ADO.NET 45
  • 46. Contact us Mr.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: awarawut@hotmail.com warawut_kha@dusit.ac.th ● Mobile: 083-0698-410 K.Warawut Create Database Application by using ADO.NET 46