1 / 39

ASP ติดต่อฐานข้อมูล

ASP ติดต่อฐานข้อมูล. รูปแบบการติดต่อกับฐานข้อมูล Server Object Connection Object Recordset Object. 1. Server Object. ปกติการใช้ Server Object จะใช้ในลักษณะการให้บริการเป็นหลัก และนอกจากนั้นยังมีฟังก์ชั่นสำหรับทำหน้าที่พิเศษต่าง ๆ อีกด้วย รูปแบบ Server.property | methode

Download Presentation

ASP ติดต่อฐานข้อมูล

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASP ติดต่อฐานข้อมูล รูปแบบการติดต่อกับฐานข้อมูล Server Object Connection Object Recordset Object 1

  2. Server Object • ปกติการใช้ Server Object จะใช้ในลักษณะการให้บริการเป็นหลัก และนอกจากนั้นยังมีฟังก์ชั่นสำหรับทำหน้าที่พิเศษต่าง ๆ อีกด้วย รูปแบบ Server.property | methode • โดยมี Property, Methode ที่น่าสนใจดังนี้ • ScriptTimeout CreateObject • HTMLEncode • MapPath • URLEncode 2

  3. ScriptTimeout (Property) • ใช้กำหนดระยะเวลาในการประมวลผลของ Script รูปแบบ Server.ScriptTimeout = nSeconds nSeconds เป็นระยะเวลาที่มากที่สุดในการรัน Script โดยปกติจะตั้งไว้ที่ 90 หน่วยเป็น วินาที • เราสามารถกำหนดระยะเวลาที่มากที่สุดในการรัน Script ได้โดยใช้คำสั่งดังนี้ • <%Server.ScriptTimeout = 200%> • ถ้าคุณต้องการทราบเวลาที่ใช้ในการรัน Script ได้โดยใช้คำสั่งดังนี้ • <%Timeout =Server.ScriptTimeout %> 3

  4. HTMLEncode (Method) • ใช้แปลง String ให้อยู่ในรูปแบบ HTML รูปแบบ Server.HTMLEncode(String) เช่น • <%=Server.HTMLEncode("<สวัสดีครับ>")%> • ผลที่ได้คือ&amp;&lt;&#3626;&#3623;&#3633;&#3626;&#3604;&#3637;&#3588;&#3619;&#3633;&#3610;&gt; แต่ต้องดูผลจาก Source ของ HTML 4

  5. MapPath (Method) • ใช้หาตำแหน่งที่แท้จริงในการเก็บไฟล์ รูปแบบ Server.MapPath(Path ที่อยู่ของไฟล์) URLEncode •  แปลง String ให้อยู่ในรูปแบบที่ใช้กับ URL ได้ รูปแบบ Server.URLEncode(String) 5

  6. Connection Object • แนะนำ ADO Object Model • ActiveX Data Objects คือ ชุดของออบเจ็กต์ที่ถูกนำมาใช้ ในการติดต่อกับ Database Server สำหรับ ASP โดยใช้ ADODB สร้างออบเจ็กต์ที่เกี่ยวข้องกับการ ติดต่อและดึงข้อมูล จากฐานข้อมูล เพื่อมาใช้งาน โดยมีออบเจ็กต์ต่าง ๆ ที่เกี่ยวกับ ADO ดังนี้ 1. Command Objectเป็นออบเจ็กต์คำสั่ง ที่ถูกส่งไปเพื่อเอ็กซ์คิวต์ ให้ได้เร็คคอร์ดเซ็ต กลับมาเป็นผลลัพธ์ และยังมีความสามารถในการกำหนด พารามิเตอร์ ต่าง ๆ ไปกับการส่งคำสั่งปกติได้ 2. Connection Objectเป็นออบเจ็กต์ ที่ถูกสร้างขึ้นเพื่อเชื่อมต่อกับฐานข้อมูล 3. Recordset Objectเป็นออบเจ็กต์ ที่ได้มาจาก การส่งคำสั่งเพื่อให้ได้เร็คคอร์ดเซ็ต เป็นผลลัพธ์กลับมา 6

  7. การติดต่อกับฐานข้อมูล โดยผ่าน ODBC,DSNLess และ OLEDB 1.การติดต่อผ่าน ODBC • ก่อนจะติดต่อผ่าน ODBC คุณต้องทำการ Set Dsn ก่อน พูดง่าย ๆ ก็คือ การ Set Driver เพื่อให้รู้จักกับฐานข้อมูลนั้นเอง หลังจาก Set Dsn เรียบร้อยแล้ว ในที่นี้ตั้งชื่อ Dsn เป็น Database • ขั้นต่อไปก็ติดต่อกับฐานข้อมูล • รูปแบบการติดต่อ • Set Conn = Server.CreateObject("ADODB.Connection")Conn.Open "Dsn-name" ,"[userName]" , "[password]" 7

  8. เมื่อConn : เป็นการสร้างออบเจ็กต์ใหม่ชื่อว่า ConnDsn-name : คือชื่อ Dsn userName : ชื่อผู้มีสิทธิใช้ฐานข้อมูล ถ้าไม่มีใส่ "" (ว่าง) password :รหัสผ่านการใช้ฐานข้อมูลของผู้ใช้ userName ถ้าไม่มีใส "" (ว่าง) 8

  9. เมื่อนำมาใช้กับ Dsn ที่สร้างขั้นมาจะได้Set Conn = Server.CreateObject("ADODB.Connection")Conn.Open "Dsn-name" ,"" , ""สำหรับการติดต่อกับฐานข้อมูลก็เป็นอันเสร็จ ส่วนเรื่องการดึงข้อมูลมาให้ เราจะได้เรียนรู้ในหัวข้อต่อไป • เพิ่มเติม ข้อเสียของวิธีนี้คือ Server ต้อง Support กับการเชื่อมฐานข้อมูลแบบ ODBC และ เราต้องเสียเวลาไป Set ค่า ใน Dsn Server 9

  10. 2.การติดต่อผ่าน DsnLess • วิธีนี้จะแตกต่างจากวิธีผ่าน ODBC คือไม่ต้องกำหนด DSN ที่ ODBC แต่เรากำหนดลงในตัว asp script เลย • สำหรับการแก้ไขการ Set แบบ DsnLess วิธีนี้คือ การเขียนไฟล์สำหรับการ Include 10

  11. รูปแบบการติดต่อ Set Conn = Server.CreatteObject("ADODB.Connection")Conn.Open "Driver={database_driver} ; DBQ = drive:\path[\database_name]" database_driver :Driver สำหรับฐานข้อมูล ที่จะใช้ มีหลาย drive เช่น FoxPro กำหนดดังนี้ Driver ={Microsoft FoxPro Driver(*.dbf)};DBQ=drive:\path ที่เก็บไฟล์ .dbf Access กำหนดดังนี้ Driver ={Microsoft Access Driver(*.mdb)};DBQ=drive:\path\ชื่อฐานข้อมูล.mdbdrive:\path : ชื่อ Drive และ Directory ที่เก็บฐานข้อมูล database_name : ชื่อฐานข้อมูล ยกเว้นถ้าเป็น ฐานข้อมูลตระกูล FoxBase,FoxPro, dBase ไม่ต้องระบุ 11

  12. ตัวอย่าง Set Conn = Server.CreatteObject("ADODB.Connection")Conn.Open "Driver ={Microsoft Access Driver(*.mdb)};DBQ=C:\Inetpub\wwwroot\db\database.mdb" • จากตัวอย่างที่ผ่านมาจะเห็นว่าสามารถใช้ได้กับ path ที่เป็น Drive เท่านั้น ถ้าหากใช้บน Server จะเกิดปัญหาเรื่องไม่สามารถติดต่อกับฐานข้อมูลได้ • เราสามารถแก้ปัญหานี้ได้โดย กำหนดเป็น Server.MapPath • ตัวอย่าง Set Conn=Server.Createobject("ADODB.Connection")Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/database.mdb"),"" , "" • หมายเหตุ ,"",""ความหมายคือ ,"[username]","[password]" คือ Username และ รหัสผ่านฐานข้อมูลในกรณีที่มี ถ้าไม่มีให้ปล่อยว่างเอาใว้ 12

  13. เพิ่มเติมอีกนิดหนึ่ง Method ที่น่าสนใจ สำหรับ Connection • .Open : เป็นการเปิดการเชื่อต่อกับ DSN ชื่อ mydsn ที่กำหนดไว้ที่ ODBC • .Close :เป็นการเลิกการติดต่อกับ DSN • .Execute(strSQL) : เป็นการติดต่อเพื่อประมวลผลข้อมูล จากฐานข้อมูล โดยใช้สตริงที่เก็บคำสั่ง SQL ที่ต้องการกระทำกับฐานข้อมูลเพื่อให้ได้ข้อมูลที่ต้องการ 13

  14. 3.การติดต่อผ่าน OLEDB • การติดต่อฐานข้อมูลในแบบสุดท้ายที่จะกล่าวถึงคือแบบ OLEDB หรือ (Object Link Embedding Database) • OLEDB จะมีโพรไวเดอร์ (provider) ทำหน้าที่คล้ายกับไดร์เวอร์ในระบบการติดต่อฐานข้อมูล แบบ DNS และ DNSLess • แต่โพรไวเดอร์จะมีลักษณะพิเศษกว่า คือมีการติดต่อกับฐานข้อมูลที่เร็วกว่าและรองรับการใช้ฐานข้อมูลแบบสัมพันธ์ (Relational Database) เป็นต้น 14

  15. การติอต่อฐานข้อมูลในรูปแบบของ OLEDB จะมีรูปแบบดังนี้ Set strCon = Server.CreateObject("ADODB.Connection")strCon.Open "PROVIDER=ชื่อโพรไวเดอร์; DATA SOURCE=ชื่อไฟล์หรือเซิร์ฟเวอร์; INITIAL CATALOG =ชื่อฐานข้อมูล;USER ID=ชื่อผู้ใช้;PASSWORD=รหัสผ่าน" • เช่นการติดต่อกับฐานข้อมูลที่ที่เก็บอยู่ใน Drive Set Conn= Server.CreateObject("ADODB.Connection")Conn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\database.mdb" 15

  16. หรือถ้าคุณต้องการเรียกไฟล์ที่อยู่ใน path ของ Server Set Conn = Server.CreateObject("ADODB.Connection")Conn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/database.mdb") 16

  17. Recordset Object • เป็นการดึงข้อมูลจากฐานข้อมูลมาแสดงโดยใช้ Recordset เพื่อควบคุมสถานะการแสดงผลต่าง ๆ • ก่อนที่จะศึกษาทำความเข้าใจเกี่ยวกับ การเรียกใช้ข้อมูลในตาราง โดยใช้ SQL Statementคือการนำคำสั่ง Sql มาเพื่อทำการเลือกตารางหรือ เลือกข้อมูลในตาราง 17

  18. ตัวอย่าง • Sql="Select * From member" 'เป็นการกำหนด Object Sql เพื่อเลือกตาราง member • รูปแบบ Set RS = Server.CreateObject("ADODB.Recordset")RS.Open sql, Conn , 1 , 3 • เมื่อRS : เป็นตัวแปร Recordset ที่มารับข้อมูลจากฐานข้อมูล sql : เป็นสตริงที่เก็บคำสั่ง SQL ที่ต้องการกระทำกับฐานข้อมูลเพื่อให้ได้ข้อมูลที่ต้องการ Conn : เป็นตัวแปรออบเจ็กต์ Connection 18

  19. คำสั่งrs.Open Source, Connection, CursorType, LockType, Option ตัวอย่าง RS.Open sql, Conn , 1 , 3 Source คือแหล่งที่มาของข้อมูลส่วนมากจะเป็นคำสั่ง SQL Connection คือการติดต่อฐานข้อมูล ซึ่งปกติจะอยู่ในรูปแบบของ Object Connection CursorType นั้นจะหมายถึงชนิดการเลื่อนของ pointer LockType นั้นจะเป็นชนิดการ Lock ของ Cursor ซึ่งมีความสัมพันธ์โดยตรงกับ CursorTypeCursorType • adOpenForwardOnly มีค่า CursorType เท่ากับ 0(ถ้าเราไม่กำหนดมันก็จะถือเป็น 0คือค่าตั้งต้น ) adOpenKeySet มีค่า CursorType เท่ากับ 1 adOpenDynamic มีค่า CursorType เท่ากับ 2 adOpenStatic มีค่า CursorType เท่ากับ 3

  20. CursorType ต่อ • adOpenForwardOnly การกำหนด CursorType เป็นค่านี้ (ค่า 0 )จะเป็นการให้ pointer เลื่อนข้อมูลไปข้างหน้าเพียงอย่างเดียว ไม่สามารถย้อนหลังได้ กล่าวคือข้อมูลที่แสดงจะเริ่มต้นจากข้อมูลที่ 1 แล้วจึงไปข้อมูลที่ 2 จะเริ่มจาก 2 แล้วย้อนมา 1 ไม่ได้การเลื่อน pointer ในลักษณะนี้จะทำได้เร็วและไม่สิ้นเปลืองหน่วยความจำของ Server มากนักเนื่องจากไม่มีการถ่ายโอนข้อมูลมาเก็บไว้ในหน่วยความจำ (RAM) ดังนั้วิธีการนี้เหมาะสำหรับการแสดงข้อมูลเพียงอย่างเดียว • adOpenKeySet การกำหนดเลื่อน pointer แบบนี้จะเป็นการกำหนดให้ pointer เลื่อนไปมาได้อย่างอิสระทั้งไปข้างหน้า และไปข้างหลัง หรือจะเลื่อนจากหลังก่อน แล้วค่อยมาหน้าก็ได้ แล้วแต่ว่าเราจะกำหนดให้ pointer ไปอยู่ที่ไหน เมื่อใดก็ตามที่มีผู้ใช้งานคนอื่นเข้ามาเปลี่ยนแปลงข้อมูลในฐานข้อมูลเราก็จะเห็นการเปลี่ยนแปลงนั้นด้วยแต่ถ้าเป็นการเพิ่มหรือลดข้อมูลแล้ว เราจะไม่เห็นการเปลี่ยนแปลงนั้นสาเหตุเพราะตำแหน่งของ pointer ได้ถูกกำหนดไว้ตั้งแต่ตอนติดต่อฐานข้อมูลทีแรกแล้วดังนั้นถ้าเราอยากเห็นการเปลี่ยนแปลงเราต้องใช้ Method Requery เพื่อเรียกดูข้อมูลใหม่อีกครั้งหนึ่ง

  21. CursorType ต่อ • adOpenDynamic การกำหนดเลื่อน pointer แบบนี้จะเป็นการกำหนดให้ pointer เลื่อนไปมาได้อย่างอิสระทั้งไปข้างหน้า และไปข้างหลัง หรือจะเลื่อนจากหลังก่อน แล้วค่อยมาหน้าก็ได้ แล้วแต่ว่าเราจะกำหนดให้ pointer ไปอยู่ที่ไหน เมื่อใดก็ตามที่มีผู้ใช้งานคนอื่นเข้ามาเปลี่ยนแปลงข้อมูลในฐานข้อมูลเราก็จะเห็นการเปลี่ยนแปลงนั้นด้วยและยิ่งไปกว่านั้นเรายังสามารถมองเห็นข้อมูลปัจจุบันได้ตลอดเวลาไม่ว่าข้อมูลจะเพิ่มหรือลดลง ที่กระทำโดยผู้ใช้รายอื่นก็ตามสาเหตุก็เพราะว่าการเลื่อ point แบบนี้จะมีการถ่ายโอนข้อมูลไปไว้ที่หน่วยความจำก่อน และมีการอัพเดทข้อมูลใหม่เรื่อยๆในหน่วยความจำเสมอ แล้วจึงจะแสดงให้เราดูอีกทีแต่ก็มีข้อเสียตรงที่สิ้นเปลืองหน่วยความจำมากนั่นเอง ซึ่งการกำหนด CursorType ในลักษณะนี้เหมาะกับกรณีที่ต้องอัพเดทข้อมูลบ่อยๆ • adOpenStatic การกำหนดเลื่อน pointer แบบนี้จะเป็นในลักษณะเดียวกันกับแบบ adOpenDynamic เพราะมีการถ่ายโอนข้อมูลเข้าห่วยความจำแต่ก็มีจุดที่แตกต่างกันอย่างสิ้นเชิงก็คือ การกำหนดในแบบนี้จะไม่มีการอัพเดทข้อมูลใหม่ๆลงในหน่วยความจำเลย ดังนั้นข้อมูลที่ได้ก็จะเป็นข้อมูลเดิมๆ ที่ไม่ มีการเปลี่ยนแปลงใดๆ อย่างไรก็ตามถ้าเราต้องการดูข้อมูลใหม่ เราก็ใช้ Method Reqyery เช่นเดียวกับแบบ adOpenKeySet

  22. LockType adLockReadOnly มีค่า LockType เท่ากับ 1 (ถ้าเราไม่กำหนดมันก็จะถือเป็น 1 คือค่าตั้งต้น ) adLockPessimistic มีค่า LockType เท่ากับ 2 adLockOptimistic มีค่า LockType เท่ากับ 3 adLockBatchOptimistic มีค่า LockType เท่ากับ 4 • adLockReadOnly เมื่อกำหนดวิธีการปกป้องข้อมูลในรูปแบบนี้แล้ว ผู้ใช้จะสามารถอ่านได้เพียงอย่างเดียว ไม่สามารถเพิ่ม ลบ หรือแก้ไขข้อมูลใดๆได้ adLockPessimistic เมื่อกำหนดวิธีการปกป้องข้อมูลในรูปแบบนี้แล้วผู้ใช้จะสามารถเปลี่ยนแปลงแก้ไขข้อมูลได้ แต่จะทำได้คลั้งละเพียงคนเดียวเท่านั้น คือไม่สามรถเปลี่ยนแปลงได้พร้อมๆกัน

  23. LockType ต่อ • adLockOptimistic เมื่อกำหนดวิธีการปกป้องข้อมูลในรูปแบบนี้แล้วผู้ใช้จะสามารถเปลี่ยนแปลงแก้ไขข้อมูลได้ โดยสามารถกระทำพร้อมกันได้หลายๆคน แต่การแก้ไขจะเป็นไปทีละ 1 รายการ หรือ 1 Record เท่านั้น ถ้ามีการเปลี่ยนแปลงข้อมูลที่ 1 แล้ว pointer เลื่อนไปตำแหน่งที่ 2 เพื่อแก้ไขต่อไป ADO ก็จะเรียก Method Update ขึ้นมาให้เองเพื่อจัดเก็บข้อมูลที่แก้ไขลงฐานข้อมูลก่อน • adLockBatchOptimisticวิธีการปกป้องข้อมูลในรูปแบบนี้จะคล้ายกับวิธี adLockOptimistic แต่ว่าวิธีนี้จะสามารถแก้ไขข้อมูลได้ทีละมากๆ จึงเหมาะที่จะใช้งานในกรณีบางอย่างเช่นต้องการแก้ไขรหัสสมาชิกที่ขึ้นต้นด้วย A ก็สามารถเขียนโปรแกรมวนลูปแก้ไขในฐานข้อมูลก่อน จากนั้นจึงทำการอัพเดทลงฐานข้อมูลทีเดียวเลย

  24. ตัวอย่าง • Set Conn=Server.Createobject("ADODB.Connection")Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/member.mdb"),"" , ""Sql="Select * Form member" Set RS = Server.CreateObject("ADODB.Recordset")RS.Open sql, Conn , 1 , 3 • วิธีนี้สามารถเรียกใช้ Property และ Method ได้เพิ่มขึ้นจากวิธี Dynamic คือ RS.Open : เป็นออบเจ็กต์สำหรับ การเปิด Recordset RS.RecordCount : บอกจำนวน record ทั้งหมด RS.PageSize : ใช้กำหนดว่าแต่ละหน้าจะให้มีกี่รายการ ในการแสดงผล RS.PageCount : นับจำนวนหน้าทั้งหมด ที่ได้จากการกำหนดขนาดของหน้า RS.AbsolutePage : ใช้อ้างอิงไปยังหน้าที่ต้องการ 24

  25. ชื่อ ฐานข้อมูล \db\member.mdbชื่อตาราง member • ชื่อ Field- ID- Name- Surname- Nickname - User - Password - Type 25

  26. ตัวอย่าง sam10-1.asp <%Set Conn=Server.Createobject("ADODB.Connection")Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/member.mdb"),"" , ""'หรือจะใช้เป็น Conn.Open "Dsn-name","",""sql ="Select * From member"Set Rs=Server.CreateObject("ADODB.Recordset")Rs.Open sql, Conn, 1,3 If Rs.EOF Then%>ไม่มีข้อมูลในตาราง ! <%Else' นับรายการทั้งหมดTotalRecord = Rs.RecordCount ' ต้องการให้แสดงหน้าละ 10 รายการRs.PageSize = 10 ' จำนวนหน้าทั้งหมดที่จะเกิดขึ้นTotalPage = Rs.PageCount 'เลื่อนรายการไปหน้าที่ต้องการPageNo = 1Rs.AbsolutePage =PageNo %> <table border="1"><tr bgcolor="Silver"> <td>รหัสนักศึกษา</td><td>ชื่อ</td><td>นามสกุล</td><td>ชื่อเล่น</td></tr> Sam10-1.asp 26

  27. ตัวอย่าง sam10-1.asp (ต่อ) <% row = 1While Not Rs.EOF and row<=Rs.PageSize%><tr><td><%= Rs("ID")%></td><td><%= Rs("Name")%></td><td><%= Rs(“SurName")%></td><td><%= Rs("Nickname")%></td></tr><% Rs.MoveNext row = row +1 WendRs.CloseConn.CloseEnd If%><tr><td colspan="4"> หน้าที่ :<b> <%=PageNo%> </b> ของทั้งหมด <b><%= TotalPage %></b> หน้า <br>รายการทั้งหมด :<b><%= TotalRecord %></b> </td></tr></table> 27

  28. Out put 28

  29. รูปแบบการติดต่อข้อมูลแบบรูปแบบการติดต่อข้อมูลแบบ • Dynamic Recordset • Static Recordset 29

  30. รูปแบบการติดต่อข้อมูลแบบ Dynamic Recordset • เป็นการดึงข้อมูลจากฐานข้อมูลมาแสดงโดยไม่ได้ใช้ Recordset เพื่อควบคุมสถานะการแสดงผลต่าง • รูปแบบ • Set RS = Conn.Execute(sql) • เมื่อRS : เป็นตัวแปร Recordset ที่มารับข้อมูลจาก Conn.Execute(sql) sql : เป็นสตริงที่เก็บคำสั่ง SQL ที่ต้องการกระทำกับฐานข้อมูลเพื่อให้ได้ข้อมูลที่ต้องการ 30

  31. ตัวอย่าง Set Conn=Server.Createobject("ADODB.Connection")Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/member.mdb"),"" , ""Sql="Select * from Table"Set RS = Conn.Execute(sql) 31

  32. สามารถเรียกใช้ Property และ Method ได้ดังนี้ • RS.Close : เป็นออบเจ็กต์สำหรับการปิด Recordset RS.MoveNext : เป็นออบเจ็กต์สำหรับการเลื่อน Record ไป 1 Record RS.EOF : เป็นออบเจ็กต์ตรวจสอบ End of File RS.BOF : เป็นออบเจ็กต์ตรวจสอบ Begin of File RS.Fields.Count : บอกจำนวน field RS.Fields.name : บอกชื่อ field RS.Fields.Items("field") : ระบุชื่อ filed RS.Fields.Items("field").value : ระบุชื่อ filed และแสดงค่าใน field นั้นออกมา 32

  33. ตัวอย่าง • ชื่อตาราง memberชื่อ Filed- ID- Name- Surname- Nickname 33

  34. ตัวอย่าง Sam10-2.asp <%Set Conn=Server.Createobject("ADODB.Connection")Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/member.mdb"),"" , ""'หรือจะใช้เป็น Conn.Open "Dsn-name","",""Set Rs = Conn.Execute("member")' อาจจะใช้เป็น' Sql="Select * From member"' Set Rs = Conn.Execute("Sql")If Rs.EOF Then%>ไม่มีข้อมูลในตาราง !<%Else%><table border="1"><tr bgcolor="Silver"><td>รหัสนักศึกษา</td><td>ชื่อ</td><td>นามสกุล</td><td>ชื่อเล่น</td> 34

  35. ตัวอย่าง Sam10-2.asp (ต่อ) • </tr> <% While Not Rs.EOF%><tr><td><%= Rs("Id")%></td><td><%= Rs("name")%></td><td><%= Rs("Surname")%></td><td><%= Rs("Nickname")%></td></tr><% Rs.MoveNextWendRs.CloseConn.CloseEnd If%></table> 35

  36. Out Put 36

  37. การทำ login Form LoginForm.asp <HTML> <BODY>ฟอร์ม Login <FORM METHOD=POST ACTION=“chk_login.asp"> User:<INPUT TYPE="text" NAME="User" size="15"><BR> Password:<INPUT TYPE="Password" NAME="Password" size="15"><BR> <INPUT TYPE="submit" Value="Login"> <INPUT TYPE="reset" Value="Cancel"> </FORM> </BODY> </HTML>

  38. ไฟล์ chk_login.asp <% Set Conn=Server.Createobject("ADODB.Connection") Conn.Open "DRIVER=Microsoft Access Driver (*.mdb);DBQ=" & Server.MapPath("db/member.mdb"),"" , "" ‘หรือจะใช้ Conn.Open "member","","" sql ="Select * From member where user ='"&Request.Form("user")&"' and Password='"&Request.Form("Password")&"'" Set Rs = Conn.Execute(sql) If Rs.EOF Then %> ไม่พบข้อมูล <%Else%> ยินดีต้อนรับ <Br> คุณ <%= Rs("Name")%>&nbsp; <%= Rs("SurName")%> ‘ อาจจะเรียกไฟล์อื่นๆได้ หลัง login สำเร็จ ‘ Response.redirect ”mainmenu.asp” <%end if Rs.Close Conn.Close %>

  39. แบบฝึกหัด • นำข้อมูลจากฐานข้อมูลออกมาแสดง • แสดงแต่ละเรคอร์ดให้สลับสีบรรทัด • โดยให้สามารถลิ้งค์ไปหน้าต่างๆได้ด้วย • โดยแสดงข้อมูลหน้าละ 8 เรคอร์ด มีทั้งหมด 39 รายการ ไปหน้าที่ 1 234 5 39

More Related