23 – web applications: writing data to databases using asp

19
Mark Dixon Page 1 23 – Web applications: Writing data to Databases using ASP

Upload: ananda

Post on 06-Jan-2016

24 views

Category:

Documents


0 download

DESCRIPTION

23 – Web applications: Writing data to Databases using ASP. Questions: HTML in VB. Are these correct (assume variables and fields exist)? f = f + rs.Fields(" Description ").value h = h + rs.Fields(" Name ").value a = "" + a "" html = html + - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 1

23 – Web applications:Writing data to Databases

using ASP

Page 2: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 2

Questions: HTML in VB• Are these correct (assume variables and

fields exist)?

f = f + rs.Fields("Description").value

h = h + rs.Fields("<br />Name").value

a = "<p>" + a "</p>"

html = html + <img src=face.gif />

h = "<table>" + h + "</table>"

Page 3: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 3

Questions: Databases• How many primary keys?• How many foreign keys?

32

PlantPlantID EnglishName ScientificName Price Toxic FileName

1 Foxglove Digitalis purpurea 2.5 TRUE Foxglove.jpg2 Daisy Bellis perennis 0.45 FALSE Daisy.jpg3 Hemlock Conium maculatum 8.79 TRUE Hemlock.jpg4 Marsh Mallow Althaea officinalis 3.25 FALSE MarshMallow.jpg5 Lords-and-Ladies Arum maculatum 2.25 TRUE Lords.jpg6 Wild Carrot Daucus carota 1.25 FALSE WildCarrot.jpg7 Bluebell Hyacinthoides non-scripta 1.8 FALSE Bluebell.jpg8 Common Poppy Papaver rhoeas 1.28 FALSE Poppy.jpg

OrderOrderID CustID PlantID Quantity Date Current

1 1 7 10 14-Mar-06 TRUE2 2 5 2 14-Mar-06 TRUE3 1 3 1 14-Mar-06 FALSE5 2 4 4 14-Mar-06 FALSE

46 1 2 9 09-Jun-06 FALSE

CustomerCustID Surname Forenames email Password

1 Dixon Mark [email protected] a2 Jones Sally [email protected] sally

Page 4: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 4

Session Aims & Objectives• Aims

– To introduce the fundamental ideas involved in using server-side code to write data to databases

• Objectives,by end of this week’s sessions, you should be able to:

– create an ASP web page that allows the user to store data in database

Page 5: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 5

Example: Person v1 (Specification)

• User requirement:– Display people's details from database online– need 2 pages:

smithjonesdixon

list of people

jonessally

person's details

Page 6: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 6

Example: PeopleList.aspx v1<script language="VB" runat="server"> Sub Page_Load() Const cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\People.mdb;" Dim rs As Object Dim s As String rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) s = "" Do Until rs.EOF() s = s & rs.Fields("Surname").Value & "<br />" rs.MoveNext() Loop parData.InnerHtml = s rs.Close() rs = Nothing End Sub</script>

<html> <head><title></title></head> <body> <p id="parData" runat="server"></p> </body></html>

Page 7: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 7

Example: PeopleList.aspx v2<script language="VB" runat="server"> Sub Page_Load() Const cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\People.mdb;" Dim rs As Object Dim s As String rs = CreateObject("ADODB.Recordset") rs.Open("Person", cs) s = "" Do Until rs.EOF() s = s & "<a href='Person.aspx?id=" & rs.Fields("ID").Value & "'>" s = s & rs.Fields("Surname").Value & "</a><br />" rs.MoveNext() Loop parData.InnerHtml = s rs.Close() rs = Nothing End Sub</script>

<html> <head><title></title></head> <body> <p id="parData" runat="server"></p> </body></html>

now links

Page 8: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 8

Example: Person.aspx v2<script language="VB" runat="server"> Sub Page_Load() Const cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\People.mdb;" Dim sql As String Dim rs As Object Dim s As String sql = "SELECT * FROM Person WHERE id=" & Request.QueryString("id") rs = CreateObject("ADODB.Recordset") rs.Open(sql, cs) s = "" If Not rs.EOF() Then txtSurname.Value = rs.Fields("Surname").Value End If rs.Close() rs = Nothing End Sub</script>

<html> <head><title></title></head> <body> <a href="PeopleList.aspx">Back to People List</a><br /> <form runat="server"> Surname: <input id="txtSurname" runat="server" /><br /> <input id="btnSave" type="submit" value="Save" runat="server" /> </form> </body></html>

reads querystring(from previous page)

displays data forselected record only

Page 9: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 9

Example: Person v2 (Specification)

• User requirement:Display person’s details from database online

– Change surname and save to database

Page 10: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 10

Database Permissions 1• Windows Explorer

– Tools– Folder Options– View Tab

• Need to turn'simple file sharing' off(as this disables the security tab in file properties)

Page 11: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 11

Database Permissions 2• In order for ASP to

write to a database– Need to give write

access to Internet Guest Account for database file (People.mdb)

• Right-click on file in Windows Explorer(the following screens are for Windows XP)

Page 12: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 12

Database Permissions 3• Click Security tab

• Click Add button

Page 13: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 13

Database Permissions 4• Click Advanced

button

Page 14: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 14

• Select Internet Guest Account IUSR_ … ClickFind button

Clickuser

ClickOK button

Database Permissions 5

Page 15: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 15

Database Permissions 6• Select Internet

Guest Account

• Ensure writeaccess is on

• Repeat forASPNET account

Page 16: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 16

Changing Data• Recordset methods

– AddNew: inserts a new record and makes it current

– rs.Fields("FieldName").value = "Data"

– Update: sends changes back to DB

– Delete: deletes currently selected record

Page 17: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 17

Writing data to a database• create recordset• open recordset

– dynamic cursor (3), pessimistic locking (3)

• to add a record– use to AddNew methodrs.AddNew

• to delete a record– use the Delete method rs.Delete

• to change existing data– assign a new value to fields

rs.Fields("Surname").Value = "Fred"

Page 18: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 18

Example: Person.aspx v3<script language="VB" runat="server"> Sub Page_Load() Const cs = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\People.mdb;" Dim sql As String Dim rs As Object Dim s As String sql = "SELECT * FROM Person WHERE id=" & Request.QueryString("id") rs = CreateObject("ADODB.Recordset") rs.Open(sql, cs, 3, 3) s = "" If Not rs.EOF() Then If Request.Form("btnSave") > "" Then rs.Fields("Surname").Value = txtSurname.Value rs.Update() End If txtSurname.Value = rs.Fields("Surname").Value End If rs.Close() rs = Nothing End Sub</script>

<html> <head><title></title></head> <body> <a href="PeopleList.aspx">Back to People List</a><br /> <form runat="server"> Surname: <input id="txtSurname" runat="server" /><br /> <input id="btnSave" type="submit" value="Save" runat="server" /> </form> </body></html>

Save button works now

Page 19: 23 – Web applications: Writing data to Databases using ASP

Mark Dixon Page 19

Tutorial Exercise: Person• Task 1: Get the Person (v1) example from the lecture

working.• Task 2: Modify your code, so that forename is displayed as

well as surname (use a table).• Task 3: Get the Person (v2 and v3) example from the

lecture working.• Task 3: Modify your code, so that a line of text is displayed

confirming that data has been saved.• Task 4: Modify your code, so that an add button is

included, which allows a new record to be added.• Task 5: Modify your code, so that a delete button is

included, which allows the current record to be deleted.