390 likes | 549 Views
ASP ติดต่อฐานข้อมูล. รูปแบบการติดต่อกับฐานข้อมูล Server Object Connection Object Recordset Object. 1. Server Object. ปกติการใช้ Server Object จะใช้ในลักษณะการให้บริการเป็นหลัก และนอกจากนั้นยังมีฟังก์ชั่นสำหรับทำหน้าที่พิเศษต่าง ๆ อีกด้วย รูปแบบ Server.property | methode
E N D
ASP ติดต่อฐานข้อมูล รูปแบบการติดต่อกับฐานข้อมูล Server Object Connection Object Recordset Object 1
Server Object • ปกติการใช้ Server Object จะใช้ในลักษณะการให้บริการเป็นหลัก และนอกจากนั้นยังมีฟังก์ชั่นสำหรับทำหน้าที่พิเศษต่าง ๆ อีกด้วย รูปแบบ Server.property | methode • โดยมี Property, Methode ที่น่าสนใจดังนี้ • ScriptTimeout CreateObject • HTMLEncode • MapPath • URLEncode 2
ScriptTimeout (Property) • ใช้กำหนดระยะเวลาในการประมวลผลของ Script รูปแบบ Server.ScriptTimeout = nSeconds nSeconds เป็นระยะเวลาที่มากที่สุดในการรัน Script โดยปกติจะตั้งไว้ที่ 90 หน่วยเป็น วินาที • เราสามารถกำหนดระยะเวลาที่มากที่สุดในการรัน Script ได้โดยใช้คำสั่งดังนี้ • <%Server.ScriptTimeout = 200%> • ถ้าคุณต้องการทราบเวลาที่ใช้ในการรัน Script ได้โดยใช้คำสั่งดังนี้ • <%Timeout =Server.ScriptTimeout %> 3
HTMLEncode (Method) • ใช้แปลง String ให้อยู่ในรูปแบบ HTML รูปแบบ Server.HTMLEncode(String) เช่น • <%=Server.HTMLEncode("<สวัสดีครับ>")%> • ผลที่ได้คือ&<สวัสดีครับ> แต่ต้องดูผลจาก Source ของ HTML 4
MapPath (Method) • ใช้หาตำแหน่งที่แท้จริงในการเก็บไฟล์ รูปแบบ Server.MapPath(Path ที่อยู่ของไฟล์) URLEncode • แปลง String ให้อยู่ในรูปแบบที่ใช้กับ URL ได้ รูปแบบ Server.URLEncode(String) 5
Connection Object • แนะนำ ADO Object Model • ActiveX Data Objects คือ ชุดของออบเจ็กต์ที่ถูกนำมาใช้ ในการติดต่อกับ Database Server สำหรับ ASP โดยใช้ ADODB สร้างออบเจ็กต์ที่เกี่ยวข้องกับการ ติดต่อและดึงข้อมูล จากฐานข้อมูล เพื่อมาใช้งาน โดยมีออบเจ็กต์ต่าง ๆ ที่เกี่ยวกับ ADO ดังนี้ 1. Command Objectเป็นออบเจ็กต์คำสั่ง ที่ถูกส่งไปเพื่อเอ็กซ์คิวต์ ให้ได้เร็คคอร์ดเซ็ต กลับมาเป็นผลลัพธ์ และยังมีความสามารถในการกำหนด พารามิเตอร์ ต่าง ๆ ไปกับการส่งคำสั่งปกติได้ 2. Connection Objectเป็นออบเจ็กต์ ที่ถูกสร้างขึ้นเพื่อเชื่อมต่อกับฐานข้อมูล 3. Recordset Objectเป็นออบเจ็กต์ ที่ได้มาจาก การส่งคำสั่งเพื่อให้ได้เร็คคอร์ดเซ็ต เป็นผลลัพธ์กลับมา 6
การติดต่อกับฐานข้อมูล โดยผ่าน 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
เมื่อConn : เป็นการสร้างออบเจ็กต์ใหม่ชื่อว่า ConnDsn-name : คือชื่อ Dsn userName : ชื่อผู้มีสิทธิใช้ฐานข้อมูล ถ้าไม่มีใส่ "" (ว่าง) password :รหัสผ่านการใช้ฐานข้อมูลของผู้ใช้ userName ถ้าไม่มีใส "" (ว่าง) 8
เมื่อนำมาใช้กับ Dsn ที่สร้างขั้นมาจะได้Set Conn = Server.CreateObject("ADODB.Connection")Conn.Open "Dsn-name" ,"" , ""สำหรับการติดต่อกับฐานข้อมูลก็เป็นอันเสร็จ ส่วนเรื่องการดึงข้อมูลมาให้ เราจะได้เรียนรู้ในหัวข้อต่อไป • เพิ่มเติม ข้อเสียของวิธีนี้คือ Server ต้อง Support กับการเชื่อมฐานข้อมูลแบบ ODBC และ เราต้องเสียเวลาไป Set ค่า ใน Dsn Server 9
2.การติดต่อผ่าน DsnLess • วิธีนี้จะแตกต่างจากวิธีผ่าน ODBC คือไม่ต้องกำหนด DSN ที่ ODBC แต่เรากำหนดลงในตัว asp script เลย • สำหรับการแก้ไขการ Set แบบ DsnLess วิธีนี้คือ การเขียนไฟล์สำหรับการ Include 10
รูปแบบการติดต่อ 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
ตัวอย่าง 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
เพิ่มเติมอีกนิดหนึ่ง Method ที่น่าสนใจ สำหรับ Connection • .Open : เป็นการเปิดการเชื่อต่อกับ DSN ชื่อ mydsn ที่กำหนดไว้ที่ ODBC • .Close :เป็นการเลิกการติดต่อกับ DSN • .Execute(strSQL) : เป็นการติดต่อเพื่อประมวลผลข้อมูล จากฐานข้อมูล โดยใช้สตริงที่เก็บคำสั่ง SQL ที่ต้องการกระทำกับฐานข้อมูลเพื่อให้ได้ข้อมูลที่ต้องการ 13
3.การติดต่อผ่าน OLEDB • การติดต่อฐานข้อมูลในแบบสุดท้ายที่จะกล่าวถึงคือแบบ OLEDB หรือ (Object Link Embedding Database) • OLEDB จะมีโพรไวเดอร์ (provider) ทำหน้าที่คล้ายกับไดร์เวอร์ในระบบการติดต่อฐานข้อมูล แบบ DNS และ DNSLess • แต่โพรไวเดอร์จะมีลักษณะพิเศษกว่า คือมีการติดต่อกับฐานข้อมูลที่เร็วกว่าและรองรับการใช้ฐานข้อมูลแบบสัมพันธ์ (Relational Database) เป็นต้น 14
การติอต่อฐานข้อมูลในรูปแบบของ 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
หรือถ้าคุณต้องการเรียกไฟล์ที่อยู่ใน path ของ Server Set Conn = Server.CreateObject("ADODB.Connection")Conn = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/database.mdb") 16
Recordset Object • เป็นการดึงข้อมูลจากฐานข้อมูลมาแสดงโดยใช้ Recordset เพื่อควบคุมสถานะการแสดงผลต่าง ๆ • ก่อนที่จะศึกษาทำความเข้าใจเกี่ยวกับ การเรียกใช้ข้อมูลในตาราง โดยใช้ SQL Statementคือการนำคำสั่ง Sql มาเพื่อทำการเลือกตารางหรือ เลือกข้อมูลในตาราง 17
ตัวอย่าง • 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
คำสั่ง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
CursorType ต่อ • adOpenForwardOnly การกำหนด CursorType เป็นค่านี้ (ค่า 0 )จะเป็นการให้ pointer เลื่อนข้อมูลไปข้างหน้าเพียงอย่างเดียว ไม่สามารถย้อนหลังได้ กล่าวคือข้อมูลที่แสดงจะเริ่มต้นจากข้อมูลที่ 1 แล้วจึงไปข้อมูลที่ 2 จะเริ่มจาก 2 แล้วย้อนมา 1 ไม่ได้การเลื่อน pointer ในลักษณะนี้จะทำได้เร็วและไม่สิ้นเปลืองหน่วยความจำของ Server มากนักเนื่องจากไม่มีการถ่ายโอนข้อมูลมาเก็บไว้ในหน่วยความจำ (RAM) ดังนั้วิธีการนี้เหมาะสำหรับการแสดงข้อมูลเพียงอย่างเดียว • adOpenKeySet การกำหนดเลื่อน pointer แบบนี้จะเป็นการกำหนดให้ pointer เลื่อนไปมาได้อย่างอิสระทั้งไปข้างหน้า และไปข้างหลัง หรือจะเลื่อนจากหลังก่อน แล้วค่อยมาหน้าก็ได้ แล้วแต่ว่าเราจะกำหนดให้ pointer ไปอยู่ที่ไหน เมื่อใดก็ตามที่มีผู้ใช้งานคนอื่นเข้ามาเปลี่ยนแปลงข้อมูลในฐานข้อมูลเราก็จะเห็นการเปลี่ยนแปลงนั้นด้วยแต่ถ้าเป็นการเพิ่มหรือลดข้อมูลแล้ว เราจะไม่เห็นการเปลี่ยนแปลงนั้นสาเหตุเพราะตำแหน่งของ pointer ได้ถูกกำหนดไว้ตั้งแต่ตอนติดต่อฐานข้อมูลทีแรกแล้วดังนั้นถ้าเราอยากเห็นการเปลี่ยนแปลงเราต้องใช้ Method Requery เพื่อเรียกดูข้อมูลใหม่อีกครั้งหนึ่ง
CursorType ต่อ • adOpenDynamic การกำหนดเลื่อน pointer แบบนี้จะเป็นการกำหนดให้ pointer เลื่อนไปมาได้อย่างอิสระทั้งไปข้างหน้า และไปข้างหลัง หรือจะเลื่อนจากหลังก่อน แล้วค่อยมาหน้าก็ได้ แล้วแต่ว่าเราจะกำหนดให้ pointer ไปอยู่ที่ไหน เมื่อใดก็ตามที่มีผู้ใช้งานคนอื่นเข้ามาเปลี่ยนแปลงข้อมูลในฐานข้อมูลเราก็จะเห็นการเปลี่ยนแปลงนั้นด้วยและยิ่งไปกว่านั้นเรายังสามารถมองเห็นข้อมูลปัจจุบันได้ตลอดเวลาไม่ว่าข้อมูลจะเพิ่มหรือลดลง ที่กระทำโดยผู้ใช้รายอื่นก็ตามสาเหตุก็เพราะว่าการเลื่อ point แบบนี้จะมีการถ่ายโอนข้อมูลไปไว้ที่หน่วยความจำก่อน และมีการอัพเดทข้อมูลใหม่เรื่อยๆในหน่วยความจำเสมอ แล้วจึงจะแสดงให้เราดูอีกทีแต่ก็มีข้อเสียตรงที่สิ้นเปลืองหน่วยความจำมากนั่นเอง ซึ่งการกำหนด CursorType ในลักษณะนี้เหมาะกับกรณีที่ต้องอัพเดทข้อมูลบ่อยๆ • adOpenStatic การกำหนดเลื่อน pointer แบบนี้จะเป็นในลักษณะเดียวกันกับแบบ adOpenDynamic เพราะมีการถ่ายโอนข้อมูลเข้าห่วยความจำแต่ก็มีจุดที่แตกต่างกันอย่างสิ้นเชิงก็คือ การกำหนดในแบบนี้จะไม่มีการอัพเดทข้อมูลใหม่ๆลงในหน่วยความจำเลย ดังนั้นข้อมูลที่ได้ก็จะเป็นข้อมูลเดิมๆ ที่ไม่ มีการเปลี่ยนแปลงใดๆ อย่างไรก็ตามถ้าเราต้องการดูข้อมูลใหม่ เราก็ใช้ Method Reqyery เช่นเดียวกับแบบ adOpenKeySet
LockType adLockReadOnly มีค่า LockType เท่ากับ 1 (ถ้าเราไม่กำหนดมันก็จะถือเป็น 1 คือค่าตั้งต้น ) adLockPessimistic มีค่า LockType เท่ากับ 2 adLockOptimistic มีค่า LockType เท่ากับ 3 adLockBatchOptimistic มีค่า LockType เท่ากับ 4 • adLockReadOnly เมื่อกำหนดวิธีการปกป้องข้อมูลในรูปแบบนี้แล้ว ผู้ใช้จะสามารถอ่านได้เพียงอย่างเดียว ไม่สามารถเพิ่ม ลบ หรือแก้ไขข้อมูลใดๆได้ adLockPessimistic เมื่อกำหนดวิธีการปกป้องข้อมูลในรูปแบบนี้แล้วผู้ใช้จะสามารถเปลี่ยนแปลงแก้ไขข้อมูลได้ แต่จะทำได้คลั้งละเพียงคนเดียวเท่านั้น คือไม่สามรถเปลี่ยนแปลงได้พร้อมๆกัน
LockType ต่อ • adLockOptimistic เมื่อกำหนดวิธีการปกป้องข้อมูลในรูปแบบนี้แล้วผู้ใช้จะสามารถเปลี่ยนแปลงแก้ไขข้อมูลได้ โดยสามารถกระทำพร้อมกันได้หลายๆคน แต่การแก้ไขจะเป็นไปทีละ 1 รายการ หรือ 1 Record เท่านั้น ถ้ามีการเปลี่ยนแปลงข้อมูลที่ 1 แล้ว pointer เลื่อนไปตำแหน่งที่ 2 เพื่อแก้ไขต่อไป ADO ก็จะเรียก Method Update ขึ้นมาให้เองเพื่อจัดเก็บข้อมูลที่แก้ไขลงฐานข้อมูลก่อน • adLockBatchOptimisticวิธีการปกป้องข้อมูลในรูปแบบนี้จะคล้ายกับวิธี adLockOptimistic แต่ว่าวิธีนี้จะสามารถแก้ไขข้อมูลได้ทีละมากๆ จึงเหมาะที่จะใช้งานในกรณีบางอย่างเช่นต้องการแก้ไขรหัสสมาชิกที่ขึ้นต้นด้วย A ก็สามารถเขียนโปรแกรมวนลูปแก้ไขในฐานข้อมูลก่อน จากนั้นจึงทำการอัพเดทลงฐานข้อมูลทีเดียวเลย
ตัวอย่าง • 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
ชื่อ ฐานข้อมูล \db\member.mdbชื่อตาราง member • ชื่อ Field- ID- Name- Surname- Nickname - User - Password - Type 25
ตัวอย่าง 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
ตัวอย่าง 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
Out put 28
รูปแบบการติดต่อข้อมูลแบบรูปแบบการติดต่อข้อมูลแบบ • Dynamic Recordset • Static Recordset 29
รูปแบบการติดต่อข้อมูลแบบ Dynamic Recordset • เป็นการดึงข้อมูลจากฐานข้อมูลมาแสดงโดยไม่ได้ใช้ Recordset เพื่อควบคุมสถานะการแสดงผลต่าง • รูปแบบ • Set RS = Conn.Execute(sql) • เมื่อRS : เป็นตัวแปร Recordset ที่มารับข้อมูลจาก Conn.Execute(sql) sql : เป็นสตริงที่เก็บคำสั่ง SQL ที่ต้องการกระทำกับฐานข้อมูลเพื่อให้ได้ข้อมูลที่ต้องการ 30
ตัวอย่าง 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
สามารถเรียกใช้ 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
ตัวอย่าง • ชื่อตาราง memberชื่อ Filed- ID- Name- Surname- Nickname 33
ตัวอย่าง 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
ตัวอย่าง 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
Out Put 36
การทำ 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>
ไฟล์ 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")%> <%= Rs("SurName")%> ‘ อาจจะเรียกไฟล์อื่นๆได้ หลัง login สำเร็จ ‘ Response.redirect ”mainmenu.asp” <%end if Rs.Close Conn.Close %>
แบบฝึกหัด • นำข้อมูลจากฐานข้อมูลออกมาแสดง • แสดงแต่ละเรคอร์ดให้สลับสีบรรทัด • โดยให้สามารถลิ้งค์ไปหน้าต่างๆได้ด้วย • โดยแสดงข้อมูลหน้าละ 8 เรคอร์ด มีทั้งหมด 39 รายการ ไปหน้าที่ 1 234 5 39