Create Database
Application by using
     ADO.NET

Suan Dusit Rajabhat University, Phitsanulok Campus
                           Mr.Warawut Khangkhan
Example:

            SearchPosition Projects



K.Warawut        Create Database Application by using ADO.NET   49
การสรางและใชงาน DataAdapter
 ●
     DataAdapter เป,น Object ทชวยใหเราท!างานก"บ
     ฐานขอมลในรปแบบ Disconnected Data Access
     ได
 ●
     DataAdapter ท!าหนาทเป,นต"วกลางในการร"บ-สง
     ขอมลระหวางฐานขอมลก"บ DataSet โดยบาง
     Application อาจใช DataAdapter เพยงท*ศทางเดยว
     คอ การดงขอมลจากฐานขอมลมาเก-บไวใน DataSet
     เพอใชงาน แตไมตองการ Update ขอมลกล"บลงไป
     ย"งฐานขอมล
K.Warawut        Create Database Application by using ADO.NET   50
การสรางและใชงาน DataAdapter
                  (ตอ)
 ●
     แทจร*งแลว DataAdapter สามารถท!างานได 2
     ท*ศทาง คอ นอกจากจะดงขอมลมาแลวย"งมการสง
     ขอมลไป Update ลงฐานขอมลดวย (เพราะการดง
     ขอมลเพยงอยางเดยวควรใช DataReader จะเหมาะ
     สมกวา ยกเวนวาจ!าเป,นตองเลอนเรคอร.ดกล"บไปกล"บ
     มา ซง DataReader ไมสน"บสน7น)




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




                                                  52
การสรางและใชงาน DataAdapter
                  (ตอ)
 ●
     แทจร*งแลว DataAdapter สามารถท!างานได 2
     ท*ศทาง คอ นอกจากจะดงขอมลมาแลวย"งมการสง
     ขอมลไป Update ลงฐานขอมลดวย (เพราะการดง
     ขอมลเพยงอยางเดยวควรใช DataReader จะเหมาะ
     สมกวา ยกเวนวาจ!าเป,นตองเลอนเรคอร.ดกล"บไปกล"บ
     มา ซง DataReader ไมสน"บสน7น)




K.Warawut        Create Database Application by using ADO.NET   53
การสรางและใชงาน DataAdapter
                  (ตอ)
สราง DataAdapter
 ●
     DataAdapter ก-คอออบเจ-กต.ของคลาส
     OleDbDataAdapter, SqlDataAdapter,
     OracleDataAdapter หรอ OdbcDataAdapter ข1น
     อยก"บชน*ดของ Data Provider ทใช

            Dim da As New OleDb.OleDbDataAdapter




K.Warawut           Create Database Application by using ADO.NET   54
การสรางและใชงาน DataAdapter
                  (ตอ)
สราง DataAdapter (ตอ)
 ●
     หล"งจากสราง DataAdapter ข1นมาแลว ใหสราง
     Command Object จ!านวน 4 Objects เพอน!ามา
     ก!าหนดใหพร-อพเพอร.ต1 SelectCommand,
     InsertCommand, DeleteCommand และ
     UpdateCommand ของ DataAdapter โดยตองก!า
     หนดพร-อพเพอร.ต1 เชน Connection,
     CommandText และ Commandtype ของ
     Command Object ท"1ง 4 ไวใหเรยบรอย
K.Warawut        Create Database Application by using ADO.NET   55
การสรางและใชงาน DataAdapter
                  (ตอ)
SelectCommand Properties
 ●
     ใชเก-บ Command Object ทมหนาทดงขอมลจาก
     ฐานขอมลมาใสลง DataSet
      Dim strSQL As String = “SELECT * FROM Orders”
      Dim cm As New OleDb.OleDbCommand(strSQL, cn)
      Dim da As New OleDb.OleDbDataAdapter
      da.SelectCommand = cm
                                         or
      Dim strSQL As String = “SELECT * FROM Orders”
      Dim da As New OleDb.OleDbDataAdapter
      da.SelectCommand = New OleDb.OleDbCommand(strSQL, cn)

K.Warawut            Create Database Application by using ADO.NET   56
การสรางและใชงาน DataAdapter
                  (ตอ)
SelectCommand Properties
 ●
     ใชเก-บ Command Object ทมหนาทดงขอมลจาก
     ฐานขอมลมาใสลง DataSet
      Dim strSQL As String = “SELECT * FROM Orders”
      Dim cm As New OleDb.OleDbCommand(strSQL, cn)
      Dim da As New OleDb.OleDbDataAdapter
      da.SelectCommand = cm
                                         or
      Dim strSQL As String = “SELECT * FROM Orders”
      Dim da As New OleDb.OleDbDataAdapter
      da.SelectCommand = New OleDb.OleDbCommand(strSQL, cn)

K.Warawut            Create Database Application by using ADO.NET   57
การสรางและใชงาน DataAdapter
                    (ตอ)
 SelectCommand Properties (ตอ)
  ●
       เมอสราง Command Object เก-บไวใน
       SelectCommand Properties ของ DataAdapter
       แลว เราสามารถท!างานก"บ Command Object น"1น
       โดยอางถง SelectCommand Properties ไดเลย
      da.SelectCommand.CommandText = “SELECT * FROM Products”
หรออาจประกาศตวแปรออบเจกตเพออางอ,งไปยง Command Object ใน SelectCommand ก$อน
      Dim com = da.SelectCommand
      com.CommandText = “sp_select_all_products”
      com.CommandType = CommandType.StoredProcedure
 K.Warawut               Create Database Application by using ADO.NET    58
การสรางและใชงาน DataAdapter
                  (ตอ)
Fill Method
 ●
     เป,นการดงขอมลจากฐานขอมลมาเก-บไวใน DataSet
     แลวป4ดการเชอมตอก"บฐานขอมลท"นททดงขอมล
     เสร-จ
 ●
     Fill Method ของ DataAdapter เมธอดน1จะเป4ดการ
     เชอมตอก"บฐานขอมล
 ●
     ขอมลใน DataSet ท Fill Method น!ามาใสจะมรป
     แบบเป,นตารางขอมลหรอเทเบ*ลเชนก"บฐานขอมล

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




K.Warawut        Create Database Application by using ADO.NET   60
การสรางและใชงาน DataAdapter
                  (ตอ)
รปแบบการใชงานของเมธอด Fill
  dataadapter.Fill(dataset, table)


  dataadapter ออบเจกต DataAdapter
  dataset     ออบเจกต DataSet ท DataAdapter
              จะนาขอม"ลมาเกบไว
  table       ชอเทเบ,ลใน DataSet ทใชเกบขอม"ล ซ!งถาใน
              DataSet ยงไม$มเทเบ,ลชอน/น กจะเป0น
              การสรางเทเบ,ลใน DataSet ข!/นมาใหม$
K.Warawut              Create Database Application by using ADO.NET   61
การสรางและใชงาน DataAdapter
                  (ตอ)
ตวอยาง
  Dim cn As New OleDb.OleDbConnection( _
              “Provider=Microsoft.Jet.OleDB.4.0;” & _
              “Data Source=C:'NMID.MDB”
  Dim strSQL As String = “SELECT * FROM Employee”
  Dim da as New OleDb.OleDbDataAdapter
  da.SelectCommand = New OleDb.OleDbCommand(strSQL, cn)

  Dim da As New DataSet
  da.Fill(ds, “Employee”)




K.Warawut            Create Database Application by using ADO.NET   62
การสรางและใชงาน DataAdapter
                  (ตอ)
อางถงฟ!ลดตางๆ ใน DataSet เพอท-างานกบขอมล
  dataset.Tables(table).Rows(row)(field)

  dataset       ออบเจกต DataSet
  table         ชอหรอหมายเลขลาดบของเทเบ,ลใน DataSet
  row           หมายเลขลาดบของเรคอรด
  field         ชอหรอหมายเลขลาดบของฟลด
    TableBox1.Text = ds.Table(“Employee”).Row(0)(“FirstName”)

    ds.Table(“Employee”).Row(0)(“LastName”) = “Khangkhan”

K.Warawut             Create Database Application by using ADO.NET   63
การสรางและใชงาน DataAdapter
                (ตอ)
ใช CommandBuilder สราง Command Object
อนๆ
●
    การ Update ฐานขอมลน"1น DataAdapter จะอาศ"ย
    ออบเจ-กต. Command ทอยในพร-อพเพอร.ต1
    InsertCommand, DeleteCommand และ
    UpdateCommand ของม"น
●
    ออบเจ-กต. CommandBuilder จะพ*จารณาค!าส"ง
    SQL ของออบเจ-กต. Command ใน
    SelectCommand แลวสรางค!าส"ง SQL ใหก"บ 3
    ออบเจ-กต.ทเหลอโดยอ"ตโนม"ต*                   64
การสรางและใชงาน DataAdapter
                   (ตอ)
การสราง CommandBuilder
 ●
      สราง CommandBuilder ข1นมาจากคลาสทเหมาะสม
      (ข1นอยก"บชน*ด Data Provider) พรอมท"1งระบ7
      DataAdapter เป,นอาร.ก*วเมนต.ใหก"บคอนสตร"คเตอร.
      ของคลาส
     Dim cb As New OleDb.OleDbCommandBuilder(da)
     ไมตองเรยกใชพรอพเพอรต'หรอเมธอดใดของ CommandBuilder



K.Warawut             Create Database Application by using ADO.NET   65
การสรางและใชงาน DataAdapter
                  (ตอ)
Update Method
 ●
     เมธอด Update ของ DataAdapter ใชอ"พเดลขอมล
     จาก DataSet ลงสฐานขอมล โดย DataSet จะคอย
     จดจ!าวามการเพ*ม ลบ และแกไขเรคอร.ดอะไรบาง
     เพอให DataAdapter สามารถอ"พเดลฐานขอมลได
     อยางถกตอง




K.Warawut        Create Database Application by using ADO.NET   66
การสรางและใชงาน DataAdapter
                  (ตอ)
รปแบบการใชงานของเมธอด Update
  dataadapter.Update(dataset, table)


  dataadapter ออบเจกต DataAdapter
  dataset     ออบเจกต DataSet ท DataAdapter
              จะนาขอม"ลไปอพเดลลงฐานขอม"ล
  table       ชอเทเบ,ลใน DataSet ทคณตองการใหนาขอม"ลไป
              อพเดลลงฐานขอม"ล
    ds.Update(ds, “Employee”)

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

        DataAdapterDemo1 Projects



K.Warawut      Create Database Application by using ADO.NET   68
Homework:

        DataAdapterDemo2 Projects
          Select index in Listbox1



K.Warawut      Create Database Application by using ADO.NET   69
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   70

03 3-create-db-application-ado-dot-net Create Database Application with using ADO.NET

  • 1.
    Create Database Application byusing ADO.NET Suan Dusit Rajabhat University, Phitsanulok Campus Mr.Warawut Khangkhan
  • 2.
    Example: SearchPosition Projects K.Warawut Create Database Application by using ADO.NET 49
  • 3.
    การสรางและใชงาน DataAdapter ● DataAdapter เป,น Object ทชวยใหเราท!างานก"บ ฐานขอมลในรปแบบ Disconnected Data Access ได ● DataAdapter ท!าหนาทเป,นต"วกลางในการร"บ-สง ขอมลระหวางฐานขอมลก"บ DataSet โดยบาง Application อาจใช DataAdapter เพยงท*ศทางเดยว คอ การดงขอมลจากฐานขอมลมาเก-บไวใน DataSet เพอใชงาน แตไมตองการ Update ขอมลกล"บลงไป ย"งฐานขอมล K.Warawut Create Database Application by using ADO.NET 50
  • 4.
    การสรางและใชงาน DataAdapter (ตอ) ● แทจร*งแลว DataAdapter สามารถท!างานได 2 ท*ศทาง คอ นอกจากจะดงขอมลมาแลวย"งมการสง ขอมลไป Update ลงฐานขอมลดวย (เพราะการดง ขอมลเพยงอยางเดยวควรใช DataReader จะเหมาะ สมกวา ยกเวนวาจ!าเป,นตองเลอนเรคอร.ดกล"บไปกล"บ มา ซง DataReader ไมสน"บสน7น) K.Warawut Create Database Application by using ADO.NET 51
  • 5.
    การสรางและใชงาน DataAdapter (ตอ) ● โดยท"วไปเราจะใช DataAdapter Object หนงๆ ท!า หนาทร"บ-สงขอมลระหวาง Table หนงในฐานขอมล ก"บ Table หนง (DataTable Object) ใน DataSet ด"งน"1นกรณทตองการท!างานก"บหลาย Table ก-จะใช DataAdapter มากกวา 1 Object 52
  • 6.
    การสรางและใชงาน DataAdapter (ตอ) ● แทจร*งแลว DataAdapter สามารถท!างานได 2 ท*ศทาง คอ นอกจากจะดงขอมลมาแลวย"งมการสง ขอมลไป Update ลงฐานขอมลดวย (เพราะการดง ขอมลเพยงอยางเดยวควรใช DataReader จะเหมาะ สมกวา ยกเวนวาจ!าเป,นตองเลอนเรคอร.ดกล"บไปกล"บ มา ซง DataReader ไมสน"บสน7น) K.Warawut Create Database Application by using ADO.NET 53
  • 7.
    การสรางและใชงาน DataAdapter (ตอ) สราง DataAdapter ● DataAdapter ก-คอออบเจ-กต.ของคลาส OleDbDataAdapter, SqlDataAdapter, OracleDataAdapter หรอ OdbcDataAdapter ข1น อยก"บชน*ดของ Data Provider ทใช Dim da As New OleDb.OleDbDataAdapter K.Warawut Create Database Application by using ADO.NET 54
  • 8.
    การสรางและใชงาน DataAdapter (ตอ) สราง DataAdapter (ตอ) ● หล"งจากสราง DataAdapter ข1นมาแลว ใหสราง Command Object จ!านวน 4 Objects เพอน!ามา ก!าหนดใหพร-อพเพอร.ต1 SelectCommand, InsertCommand, DeleteCommand และ UpdateCommand ของ DataAdapter โดยตองก!า หนดพร-อพเพอร.ต1 เชน Connection, CommandText และ Commandtype ของ Command Object ท"1ง 4 ไวใหเรยบรอย K.Warawut Create Database Application by using ADO.NET 55
  • 9.
    การสรางและใชงาน DataAdapter (ตอ) SelectCommand Properties ● ใชเก-บ Command Object ทมหนาทดงขอมลจาก ฐานขอมลมาใสลง DataSet Dim strSQL As String = “SELECT * FROM Orders” Dim cm As New OleDb.OleDbCommand(strSQL, cn) Dim da As New OleDb.OleDbDataAdapter da.SelectCommand = cm or Dim strSQL As String = “SELECT * FROM Orders” Dim da As New OleDb.OleDbDataAdapter da.SelectCommand = New OleDb.OleDbCommand(strSQL, cn) K.Warawut Create Database Application by using ADO.NET 56
  • 10.
    การสรางและใชงาน DataAdapter (ตอ) SelectCommand Properties ● ใชเก-บ Command Object ทมหนาทดงขอมลจาก ฐานขอมลมาใสลง DataSet Dim strSQL As String = “SELECT * FROM Orders” Dim cm As New OleDb.OleDbCommand(strSQL, cn) Dim da As New OleDb.OleDbDataAdapter da.SelectCommand = cm or Dim strSQL As String = “SELECT * FROM Orders” Dim da As New OleDb.OleDbDataAdapter da.SelectCommand = New OleDb.OleDbCommand(strSQL, cn) K.Warawut Create Database Application by using ADO.NET 57
  • 11.
    การสรางและใชงาน DataAdapter (ตอ) SelectCommand Properties (ตอ) ● เมอสราง Command Object เก-บไวใน SelectCommand Properties ของ DataAdapter แลว เราสามารถท!างานก"บ Command Object น"1น โดยอางถง SelectCommand Properties ไดเลย da.SelectCommand.CommandText = “SELECT * FROM Products” หรออาจประกาศตวแปรออบเจกตเพออางอ,งไปยง Command Object ใน SelectCommand ก$อน Dim com = da.SelectCommand com.CommandText = “sp_select_all_products” com.CommandType = CommandType.StoredProcedure K.Warawut Create Database Application by using ADO.NET 58
  • 12.
    การสรางและใชงาน DataAdapter (ตอ) Fill Method ● เป,นการดงขอมลจากฐานขอมลมาเก-บไวใน DataSet แลวป4ดการเชอมตอก"บฐานขอมลท"นททดงขอมล เสร-จ ● Fill Method ของ DataAdapter เมธอดน1จะเป4ดการ เชอมตอก"บฐานขอมล ● ขอมลใน DataSet ท Fill Method น!ามาใสจะมรป แบบเป,นตารางขอมลหรอเทเบ*ลเชนก"บฐานขอมล K.Warawut Create Database Application by using ADO.NET 59
  • 13.
    การสรางและใชงาน DataAdapter (ตอ) ● DataSet สามารถมเทเบ*ลไดมากกวา 1 เทเบ*ล จง อาจมองวา DataSet ก-คอ ฐานขอมลทเก-บอยใน หนวยความจ!าของเครอง Client น"นเอง เพยงแต DataSet อาจมขอมลท"1งหมดหรอเฉพาะสวนใดสวน หนงในฐานขอมลจร*งๆ ก-ได ซงข1นอยก"บวาจะดง ขอมลอะไรมาเก-บไวใน DataSet บาง K.Warawut Create Database Application by using ADO.NET 60
  • 14.
    การสรางและใชงาน DataAdapter (ตอ) รปแบบการใชงานของเมธอด Fill dataadapter.Fill(dataset, table) dataadapter ออบเจกต DataAdapter dataset ออบเจกต DataSet ท DataAdapter จะนาขอม"ลมาเกบไว table ชอเทเบ,ลใน DataSet ทใชเกบขอม"ล ซ!งถาใน DataSet ยงไม$มเทเบ,ลชอน/น กจะเป0น การสรางเทเบ,ลใน DataSet ข!/นมาใหม$ K.Warawut Create Database Application by using ADO.NET 61
  • 15.
    การสรางและใชงาน DataAdapter (ตอ) ตวอยาง Dim cn As New OleDb.OleDbConnection( _ “Provider=Microsoft.Jet.OleDB.4.0;” & _ “Data Source=C:'NMID.MDB” Dim strSQL As String = “SELECT * FROM Employee” Dim da as New OleDb.OleDbDataAdapter da.SelectCommand = New OleDb.OleDbCommand(strSQL, cn) Dim da As New DataSet da.Fill(ds, “Employee”) K.Warawut Create Database Application by using ADO.NET 62
  • 16.
    การสรางและใชงาน DataAdapter (ตอ) อางถงฟ!ลดตางๆ ใน DataSet เพอท-างานกบขอมล dataset.Tables(table).Rows(row)(field) dataset ออบเจกต DataSet table ชอหรอหมายเลขลาดบของเทเบ,ลใน DataSet row หมายเลขลาดบของเรคอรด field ชอหรอหมายเลขลาดบของฟลด TableBox1.Text = ds.Table(“Employee”).Row(0)(“FirstName”) ds.Table(“Employee”).Row(0)(“LastName”) = “Khangkhan” K.Warawut Create Database Application by using ADO.NET 63
  • 17.
    การสรางและใชงาน DataAdapter (ตอ) ใช CommandBuilder สราง Command Object อนๆ ● การ Update ฐานขอมลน"1น DataAdapter จะอาศ"ย ออบเจ-กต. Command ทอยในพร-อพเพอร.ต1 InsertCommand, DeleteCommand และ UpdateCommand ของม"น ● ออบเจ-กต. CommandBuilder จะพ*จารณาค!าส"ง SQL ของออบเจ-กต. Command ใน SelectCommand แลวสรางค!าส"ง SQL ใหก"บ 3 ออบเจ-กต.ทเหลอโดยอ"ตโนม"ต* 64
  • 18.
    การสรางและใชงาน DataAdapter (ตอ) การสราง CommandBuilder ● สราง CommandBuilder ข1นมาจากคลาสทเหมาะสม (ข1นอยก"บชน*ด Data Provider) พรอมท"1งระบ7 DataAdapter เป,นอาร.ก*วเมนต.ใหก"บคอนสตร"คเตอร. ของคลาส Dim cb As New OleDb.OleDbCommandBuilder(da) ไมตองเรยกใชพรอพเพอรต'หรอเมธอดใดของ CommandBuilder K.Warawut Create Database Application by using ADO.NET 65
  • 19.
    การสรางและใชงาน DataAdapter (ตอ) Update Method ● เมธอด Update ของ DataAdapter ใชอ"พเดลขอมล จาก DataSet ลงสฐานขอมล โดย DataSet จะคอย จดจ!าวามการเพ*ม ลบ และแกไขเรคอร.ดอะไรบาง เพอให DataAdapter สามารถอ"พเดลฐานขอมลได อยางถกตอง K.Warawut Create Database Application by using ADO.NET 66
  • 20.
    การสรางและใชงาน DataAdapter (ตอ) รปแบบการใชงานของเมธอด Update dataadapter.Update(dataset, table) dataadapter ออบเจกต DataAdapter dataset ออบเจกต DataSet ท DataAdapter จะนาขอม"ลไปอพเดลลงฐานขอม"ล table ชอเทเบ,ลใน DataSet ทคณตองการใหนาขอม"ลไป อพเดลลงฐานขอม"ล ds.Update(ds, “Employee”) K.Warawut Create Database Application by using ADO.NET 67
  • 21.
    Example: DataAdapterDemo1 Projects K.Warawut Create Database Application by using ADO.NET 68
  • 22.
    Homework: DataAdapterDemo2 Projects Select index in Listbox1 K.Warawut Create Database Application by using ADO.NET 69
  • 23.
    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 70