Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer
Artiklar > ASP

Databas - Hämta, spara, uppdatera och tabort

Först måste vi ha en databas, den döper jag till databas.mdb och lägger i mappen db.
I databasen gör jag en tabell som heter tblNamn i den har jag:

 Namn Typ 
 ID  Räknare
 Namn  Text


Då har vi databasen, nu skapar vi en fil som heter default.asp.

Först börjar vi med att skapa kontakt till databasen


<%


Dim Connect, objRS, strSQL

Set Connect = Server.CreateObject("ADODB.Connection")

Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("db/databas.mdb")




%>


Nu skapar jag kontakt till databasen och döper kontakten till Connect.

Sedan gör vi en tabell som vi ska ha datan i när vi ska skriva ut den.


<table cellspacing="0" border="0">

<tr>

<td><b>ID</b></td>

<td><b>Namn</b></td>

</tr>

</table>

<br />

<br />

Varför gjorde jag inte en till rad nu då? Jo för den kommer när vi skriver ut datan.
Och det ska vi göra nu.

Mellan slut-tr-taggen och slut-table-taggen placerar du följande.


<%

strSQL="Select ID, Namn From tblNamn Order By Namn ASC"

Set objRS = Connect.Execute(strSQL)


If objRS.EOF Then

Response.Write("</table>Det finns inga namn i databasen.")

Else

Do Until objRS.EOF

%>

<tr>

<td><%=objRS("ID")%></td>

<td><%=objRS("Namn")%></td>

</tr>

<%

objRS.MoveNext

Loop

End If

%>


Nu skapade jag en variabel som heter strSQL som innehåller en text som bestämmer vad vi ska hämta.
Sedan skapade jag en till variabel som heter objRS som kontaktar datbasen och hämtar innehållet.
Och sedan kollade jag med en If-sats om datbasen var tom eller inte och efter det la jag till en rad i tabellen och loopar om alltihop.

Men efter som databasen är tom så får vi fram "Det finns inga namn i databasen.".

Lägg till

Och då kan det vara bra att fylla på i databasen och då måste vi ha ett formulär som vi skapar nu.


<hr>

<form action="?do=add" method="post">

Namn:<br />

<input type="text" name="frm_namn"><br />

<input type="submit" value="Lägg till"><br>

</form>

Då har vi skapat formuläret för det, som ni kanske märkte så la jag dit en hr-tagg för att skilja på allt.
Nu lägger du till denna koden under Connect-koden högst upp på sidan men fortfarande innanför asp-taggarna.


If Request.Querystring("do")="add" Then

strSQL="Insert Into tblNamn(Namn) Values('"& Request.Form("frm_namn") &"')"

Connect.Execute(strSQL)

ElseIf Request.Querystring("do")="update" Then

ElseIf Request.Querystring("do")="delete" Then

End If

Nu kollar vi om do=add i så fall lägger vi till i databasen, med hjälp av insert kommandot.
Det är ganska simpelt, "Insert Into" motsvarar ungefär "Lägg till i" och rästen är likadant, Engelska och Connect kontaktar databasen och lägger till datan.
Lägg märke till att jag förberädde för de kommande funktionerna.
Nu lägger vi till ett namn och det borde dyka upp i tabellen på sidan.

Uppdatera

Nu ska vi uppdatera databasen då börjar jag med att göra ett formulär där man uppdaterar namn och väljer vilket ID som ska uppdateras.


<hr>

<form action="?do=update" method="post">

ID:<br />

<input type="text" name="frm_id"><br />

Namn:<br />

<input type="text" name="frm_namn"><br />

<input type="submit" value="Spara">

<br />

<br />

Nu har vi gjort formuläret för detta också, lägg märke till att jag la till ID detta för att man ska kunna välja vilket ID man ska uppdatera.

Nu ska vi gå in på ASP koden på denna delen.

Efter "ElseIf Request.Querystring("do")="update" Then" som vi gjorde  nyss skriver du förljande.


strSQL="Update tblNamn Set Namn='"& Request.Form("frm_namn") &"' where ID="& Request.Form("frm_id")

Connect.Execute(strSQL)


Nu gjorde vi nästan likadant som förra gången men vi bytte ut insert kommandot till update.
Samma sak här, ren Engelska alla borde förstå det.

Ta bort

Nu ska vi göra ett formulär som gör så att vi kan ta bort våra poster i databasen.


<hr>

<form action="?do=delete" method="post">

ID:<br />

<input type="text" name="frm_id"><br />

<input type="submit" value="Tabort">

</form>


Bara ID i detta formuläret för det är bara den informationen som vi behöver för att ta bort något.

Nu till ASP koden.

Efter "ElseIf Request.Querystring("do")="delete" Then" som vi gjorde innan skriver du förljande.


strSQL="Delete From tblNamn where ID="& Request.Form("frm_id")

Connect.Execute(strSQL)


Precis som förra gången bara att vi använde delete denna gången.
Om allt fungerar som det ska så har du nu ett fungerande register för t.ex namn på filmer, cd-skivor eller något annat.

Detta var det som vi skulle lära oss denna gången behöver du hjälp, kontakta mig eller skriv i forumet.

 

Skapades: 2007-07-25 23:44:40
Skribent: edvinlinden
Lästs 807 gånger
Betyg: 0 (artikeln har endast 1 röster, det krävs minst 5 för ett betyg)

Kommentarer

pbf sa den 26 juli 2007 kl 22:52:
Du måste ta en titt på SQL-injektioner så du kan skydda dig kod. Läs om det och ändra i artikeln.
edvinlinden sa den 26 juli 2007 kl 23:30:
Pbf, jag är ingen nybörjare på ASP, ska inte gå in på vad jag kan och inte.
Men detta var bara en artikel om hur man gjorde, vill man ha det säkert osv så får man ta och lära sig det, kanske kommer en artikel om det snart då ;) Tack för tipset!
Macke sa den 6 oktober 2007 kl 17:04:
Tycker ändå det borde stå om att man ska kolla upp det någon stans i artikeln så folk lär sig redan från början.
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy