sql - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ...

17
Object Oriented Programming for VB.NET :95: Mr.Anooruk Pomkotka LRU บทที ่ 8 การเขียนโปรแกรมติดต่อกับฐานข้อมูล บทที่ 8 การเขียนโปรแกรมติดต่อกับฐานข้อมูล 1. การใช้คาสั่ง SQL ขั ้นพื ้ นฐาน ก่อนที ่จะเริ ่มเขียนโปรแกรมเพื ่อจัดการกับฐานข้อมูลนั ้นสิ ่งแรกที ่ต้องทาความเข้าใจก่อนคือการศึกษา คาสั ่งในการจัดการกับฐานข้อมูลด้วยภาษา SQL เบื ้องต ้นก่อนเพื ่อจะได้เขียนโปรแกรมต่อไป จะขอยกตัวอย่างข้อมูลจากไฟล์ ซึ ่งจะมีตารางที ่เก็บอัลบั ้มเพลง (Album) กับ ตารางที เก็บข้อมูลรายการเพลง (song) มาเป็นตัวอย่างในการศึกษาคาสั ่ง จากภาษา SQL โครงสร้างของตาราง Album โครงสร้างของตาราง Song รายการข้อมูลของตาราง Album รายการข้อมูลของตาราง Song

Upload: others

Post on 21-Jun-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :95: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

บทท 8

การเขยนโปรแกรมตดตอกบฐานขอมล

1. การใชค าสง SQL ขนพ นฐาน

กอนทจะเรมเขยนโปรแกรมเพอจดการกบฐานขอมลนนสงแรกทตองท าความเขาใจกอนคอการศกษา

ค าสงในการจดการกบฐานขอมลดวยภาษา SQL เบองตนกอนเพอจะไดเขยนโปรแกรมตอไป

จะขอยกตวอยางขอมลจากไฟล ซงจะมตารางทเกบอลบมเพลง (Album) กบ ตารางท

เกบขอมลรายการเพลง (song) มาเปนตวอยางในการศกษาค าสง จากภาษา SQL

โครงสรางของตาราง Album

โครงสรางของตาราง Song

รายการขอมลของตาราง Album

รายการขอมลของตาราง Song

Page 2: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :96: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

ค าสงในการเพมขอมล

insert into album(id,nameAlbum,curdate,pathFile) values (005,"เพลงรก",#15/01/2553#,"C:/song")

ค าสง Select

1. แสดงระเบยนและฟลดทงหมดแบบไมมเงอนไข

ค าสงคอ SELECT * FROM song

ความหมายคอ เลอก(SELECT) ทกฟลด(*) จาก (FROM) ตาราง song

2. แสดงเฉพาะฟลดทเลอกแบบไมมเงอนไข

ค าสงคอ SELECT id,idAlbum,name FROM song

ความหมายคอ เลอก (SELECT) ฟลด (id,idAlbum,name) จาก ตาราง Song

3. แสดงทกฟลดและเลอกแบบมเงอนไขจากคาคงท

ค าสงคอ SELECT * FROM song WHERE namesong ='ลานนา'

ความหมายคอ เลอก(SELECT) ทกฟลด(*) จาก(FROM) ตาราง (Song) เมอ(WHERE) ฟลด

(namesong) เทากบ (= ‘ลานนา’)

Page 3: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :97: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

4. แสดงทกฟลดและเลอกแบบมเงอนไขโดยระบต าแหนงของค า

ค าสงคอ SELECT * FROM song WHERE name LIKE 'รก*'

ความหมายคอ เลอก(SELECT) ทกฟลด(*) จาก(FROM) ตาราง (Song) เมอ(WHERE) ฟลด

(Name) มค าวา‛รก‛ เปนค าน าหนาสวนค าตอมาเปนอะไรกได (LIKE 'รก*')

ค าสงเพมเตม

SELECT * FROM song WHERE name LIKE '*รก'

SELECT * FROM song WHERE name LIKE '*รก*'

SELECT * FROM song WHERE name LIKE 'รก*อ'

ขนตอนการเขยนโปรแกรมเพอจดการฐานขอมล

สรางฐานขอมลดวย Microsoft Access 2007

1. เปดโปรแกรม Microsoft Access 2007

2. สรางฐานขอมลทมชอวา data.mdb ในต าแหนง ‚C:‛ โดยสรางตารางทมชอวา student ดงภาพ

Page 4: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :98: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

3. เปดโปรแกรม visual Basic 2008 แลวสรางโปรเจคทมชอวา Student

4. สราง interface

txtFname

txtLname

btnEdit

btnAdd

frmAddData

การสรางเมธอดเพอตดตอกบฐานขอมล Access 2007

1. เลอก ViewCode หรอ กดปม F7

2. เพมเนมสเปชเขาไปในฟอรมเพอใหสามารถเรยกใชคลาสส าหรบจดการกบฐานขอมล Access

3. สรางตวแปรเพอใชในการตดตอกบฐานขอมล

Page 5: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :99: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

4. สรางเมธอดเพอท าการเชอมตอกบฐานขอมล Access โดย ตองค านงถงโปรแกรมจดการฐานขอมล

(DBMS) ซงตองใช Connection String ใหถกตอง สามารถศกษาเพมเตมไดทรวบรวมรปแบบการ

เชอมตอไดเวบไซท http://www.connectionstrings.com

S = "Provider=Microsoft.Jet.OLEDB.4.0;" S = S + "Data Source=c:\data.mdb;" S += "User Id=admin;Password=;"

Page 6: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :100: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

5. สรางเมธอด FormLoad เพอใหเกดเหตการณการณเมอระบบท าการโหลดฟอรม ซงเปนการ

ทดสอบการเรยกใชเมธอด connectData()

6. เปดโปรแกรม Window Explore จากนนไปทต าแหนงทไฟลฐานขอมล data.mdb เกบอยในทน

คอ C:/data.mdb โปรดสงเกตตอนน วามเพยงไฟล Access เพยงไฟลเดยว

7. กลบไปท โปรแกรม Vb2008 จากนน Run โปรเจค หรอกดปม F5 (หมายเหต หากรน

แลวยงมขอผดพลาดอยให ปดฐานขอมล Data.MDB กอนจากนนรนโปรเจคอกครง)

8. สลบไปท Window Explore ต าแหนง C: อกครงหนง โปรดสงเกตวามไฟลท access เพมขนมา

อกไฟลหนงคอ data.ldb

Page 7: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :101: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

หากไฟล data.ldb ปรากฏแลวจะถอวาการเชอมตอกบ ฐานขอมล Access เสรจ

สมบรณจากนนเรากสามารถทจะเขยนโปรแกรมเพอจดการกบขอมลตอไป เชน การเพมขอมล การแกไข

ขอมล การลบขอมล หรอ การเรยกดขอมลเปนตน

การจดการกบขอมลในฐานขอมล

1. ตอนนให Comment โคดสวนของการทดสอบการเชอมตอฐานขอมลกอน

2. เพมเมธอด ExecuteSQL เพอใชในการประมวลผลค าสง SQL ทรบคาพารามเตอรเขามา ดงภาพ

Page 8: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :102: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

3. สรางเมธอด เมอมการคลกทปมเพม โดยสงพารามเตอรค าสง SQL ในการเพมขอมลขอความเขาใน

ตาราง Student ดงภาพ

4. Run โปรเจค หรอกดปม F5 จากนนคลกทปมเพม 1 ครง

5. เมอเปดไฟลฐานขอมล data.MDB จะพบวามขอมล ชอ และ นามสกลปรากฏอยในตาราง Student

INSERT INTO student (Fname, Lname )VALUES ('อนรกษ','พรมโคตร

คา')

Page 9: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :103: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

6. แกไข Source Code ใหรบคาจากชอง TextBox ดงภาพ

7. เมอแกไขเรยบรอยแลวทดลอง Run โปรเจค แลวกรอกขอมลดงภาพ จากนนกดปมเพม

8. เมอเขาใปดในฐานขอมล จะพบขอมลทเพมเขาไปดงภาพ

9. สงทนาสงเกตคอ เมอคลกปมเพมแลว ไมมอะไรเกดขน ซงโดยทวไปของโปรแกรมลกษณะนคอจะตองม

สวนแจงใหผใชทราบวาตอนน ขอมลไดเขาไปอยในฐานขอมลเรยบรอยแลวโดยใช MessageBox

ExecuteSQL("INSERT INTO student(Fname, Lname )VALUES ('" & txtFname.Text & "','" &

txtLname.Text & "')")

Page 10: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :104: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

การแกไขขอมลเดมจากฐานขอมล

1. สลบไปท access จากนนแทรกฟลด ทมชอวา code เขาไปในตาราง Student ดงภาพ

แทรกฟลด “Code” ดงภาพ

Page 11: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :105: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

สลบไปทมมมองแผนงานจะพบฟลดทเพมคอ “Code”

2. สลบไปท VB.NET จากนนเพมตวควบคม Textbox และ Label โดยตงชอวา txtCode

3. แกไขเมธอด AddData() ใหม ตามฟลดทเพมขนของฐานขอมลดงน

Sql = "INSERT INTO student(Code,Fname, Lname )VALUES (" Sql += "'" & txtCode.Text & "'," Sql += "'" & txtFname.Text & "'," Sql += "'" & txtLname.Text & "'" Sql += ")"

Page 12: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :106: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

4. ทดสอบรนโปรเจคพมพขอมลดงภาพาจากนนคลกทปมเพม แลวสลบไปดฐานขอมล

5. จากนนใหเพมเมธอด UpdateData ดงภาพ

6. รนโปรแกรม จากนนพมพขอมลดงภาพแตขอสงเกตคอ รหสหรอ ID ในกรณทแกไขจะตองใหรหส

ตรงกบทมอยในฐานขอมล (รหสจะซ ากนไมได) จากนนคลกท ปมเพม

Sql = "UPDATE student SET " Sql += "code='" & txtCode.Text & "'," Sql += "Fname='" & txtFname.Text & "'," Sql += "LName='" & txtLname.Text & "'" Sql += " WHERE code='" & txtCode.Text & "' "

Page 13: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :107: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

7. เมอกลบไปดในฐานขอมลจะพบวาขอมลตามรหสท ระบจะมการแกไข

การลบเรคคอรดออกจากตารางฐานขอมล (Delete)

1. สลบไปท Design View เพมคอนโทล Button แลวตงชอวา btnDel ดงภาพ

2. สลบไปท View Code จากนน พมพเมธอด deleteData() เพมดงน

3. รนโปรเจค แลวคลกท ปมลบ

Sql = "DELETE * FROM student " Sql += " WHERE code='" & code & "' "

Page 14: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :108: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

การดงขอมลจากฐานขอมลมาแสดงผล (GetData)

1. ใหนกศกษาเพมปมคนหา จากนนตงชอของคอนโทล ตามภาพ

2. กดปม F7 เพอไปสหนาตางการเขยนโดด จากนนเพมเมธอด ExecuteReader เพอใชในการประมวลผล

ค าสง SQL ในการเรยกขอมลจากฟลดในฐานขอมล ทสงเขามา

Page 15: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :109: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

3. ดบเบลคลกเขาไปทปมคนหา

4. จากนนเพมสวนของค าสงส าหรบเรยกขอมลมาแสดงผล ในเหตการณเมอคลกของ btnFind ดงภาพ

5. รนโปรเจค

6. เราจะทดลองเพมขอมลเขาไปใน ดงภาพ

7. เขาไปในฐานขอมล Data.MDB ไปดวาขอมลทเราเพมไปนนมหรอไม

Page 16: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :110: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

8. ปด และ เปดโปรเจคใหมเพอทดสอบ การคนหาขอมล (นกศกษาสามารถสรางปมลางขอมลไดโดยทไม

ตอง ปดฟอรมและเปดไหม)

9. รนโปรเจค

10. ทดสอบการคนหาและเรยกใชขอมลดงภาพ

3

Page 17: SQL - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ ม โดยส งพาราม เตอร คาส ง SQL ในการเพ

Object Oriented Programming for VB.NET :111: Mr.Anooruk Pomkotka LRU

บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล

ใหนกศกษาเพมฟลดในตาราง Student จากฐานขอมล data.MDB ตามแบบฟอรมดงภาพ จากนนให

แกไขโคดใน vb2008 เพอใหสามารถจดการกบระเบยน เชน เพม แกไข ลบ และคนหา ได ตามขอมลใน

ฟอรมได