sql - kbtc · 3. สร างเมธอด เม อม การคล กท ป มเพ...
TRANSCRIPT
Object Oriented Programming for VB.NET :95: Mr.Anooruk Pomkotka LRU
บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล
บทท 8
การเขยนโปรแกรมตดตอกบฐานขอมล
1. การใชค าสง SQL ขนพ นฐาน
กอนทจะเรมเขยนโปรแกรมเพอจดการกบฐานขอมลนนสงแรกทตองท าความเขาใจกอนคอการศกษา
ค าสงในการจดการกบฐานขอมลดวยภาษา SQL เบองตนกอนเพอจะไดเขยนโปรแกรมตอไป
จะขอยกตวอยางขอมลจากไฟล ซงจะมตารางทเกบอลบมเพลง (Album) กบ ตารางท
เกบขอมลรายการเพลง (song) มาเปนตวอยางในการศกษาค าสง จากภาษา SQL
โครงสรางของตาราง Album
โครงสรางของตาราง Song
รายการขอมลของตาราง Album
รายการขอมลของตาราง Song
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) เทากบ (= ‘ลานนา’)
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 ดงภาพ
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. สรางตวแปรเพอใชในการตดตอกบฐานขอมล
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=;"
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
Object Oriented Programming for VB.NET :101: Mr.Anooruk Pomkotka LRU
บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล
หากไฟล data.ldb ปรากฏแลวจะถอวาการเชอมตอกบ ฐานขอมล Access เสรจ
สมบรณจากนนเรากสามารถทจะเขยนโปรแกรมเพอจดการกบขอมลตอไป เชน การเพมขอมล การแกไข
ขอมล การลบขอมล หรอ การเรยกดขอมลเปนตน
การจดการกบขอมลในฐานขอมล
1. ตอนนให Comment โคดสวนของการทดสอบการเชอมตอฐานขอมลกอน
2. เพมเมธอด ExecuteSQL เพอใชในการประมวลผลค าสง 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 ('อนรกษ','พรมโคตร
คา')
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 & "')")
Object Oriented Programming for VB.NET :104: Mr.Anooruk Pomkotka LRU
บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล
การแกไขขอมลเดมจากฐานขอมล
1. สลบไปท access จากนนแทรกฟลด ทมชอวา code เขาไปในตาราง Student ดงภาพ
แทรกฟลด “Code” ดงภาพ
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 += ")"
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 & "' "
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 & "' "
Object Oriented Programming for VB.NET :108: Mr.Anooruk Pomkotka LRU
บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล
การดงขอมลจากฐานขอมลมาแสดงผล (GetData)
1. ใหนกศกษาเพมปมคนหา จากนนตงชอของคอนโทล ตามภาพ
2. กดปม F7 เพอไปสหนาตางการเขยนโดด จากนนเพมเมธอด ExecuteReader เพอใชในการประมวลผล
ค าสง SQL ในการเรยกขอมลจากฟลดในฐานขอมล ทสงเขามา
Object Oriented Programming for VB.NET :109: Mr.Anooruk Pomkotka LRU
บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล
3. ดบเบลคลกเขาไปทปมคนหา
4. จากนนเพมสวนของค าสงส าหรบเรยกขอมลมาแสดงผล ในเหตการณเมอคลกของ btnFind ดงภาพ
5. รนโปรเจค
6. เราจะทดลองเพมขอมลเขาไปใน ดงภาพ
7. เขาไปในฐานขอมล Data.MDB ไปดวาขอมลทเราเพมไปนนมหรอไม
Object Oriented Programming for VB.NET :110: Mr.Anooruk Pomkotka LRU
บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล
8. ปด และ เปดโปรเจคใหมเพอทดสอบ การคนหาขอมล (นกศกษาสามารถสรางปมลางขอมลไดโดยทไม
ตอง ปดฟอรมและเปดไหม)
9. รนโปรเจค
10. ทดสอบการคนหาและเรยกใชขอมลดงภาพ
3
Object Oriented Programming for VB.NET :111: Mr.Anooruk Pomkotka LRU
บทท 8 การเขยนโปรแกรมตดตอกบฐานขอมล
ใหนกศกษาเพมฟลดในตาราง Student จากฐานขอมล data.MDB ตามแบบฟอรมดงภาพ จากนนให
แกไขโคดใน vb2008 เพอใหสามารถจดการกบระเบยน เชน เพม แกไข ลบ และคนหา ได ตามขอมลใน
ฟอรมได