|
| ASP - Insert i batabase Fra : Martin |
Dato : 10-11-08 15:09 |
|
Jeg er ny i ASP faget. Så undskyld, hvis jeg spørg om noget dumt.
Jeg er ved at lave et system, hvor man kan oprette, slette og
opdatere i en database, ved hjælp af Former.
Iøjeblikket er jeg i gang med at lave en opret knap.
Side1: www.pries-gate.dk/tutorial.asp
Side2: www.pries-gate.dk/news4.asp
Side3: www.pries-gate.dk/indsaet.asp ( den kan i ikke se)
databasen består af
ID(auto),Fornavn,Efternavn,Foedselsdato,Telefon
Så når jeg vil oprette en ny bruger/nyhed (Det er lige meget)
Så skriver jeg informationerne ind og trykker Opret.
Så bliver jeg sendt til view siden - oversigts siden. man kan se
den er oprettet, fordi man kan se id'en. Men eller bliver
telefonnummeret kun oprettet.?? hvorfor bliver Fornavn efternavn
og fødselsdag ikke også gemt??
Prøv selv
Side1: www.pries-gate.dk/tutorial.asp
her er ASP-Koden!
<table border=0 cellspacing=0>
<tr bgcolor=#9F9F9F>
<td><b>Id</b></td>
<td><b>Fornavn</b></td>
<td><b>Efternavn</b></td>
<td width="50"><a href="/new4.asp"> <% Response.Write "Opret Ny"
%></a></td>
</tr>
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/databaser/andeby.mdb")
Conn.Open DSN
' SQL forespørgsel
strSQL = "Select * from personer Order by id Desc"
' Udfør forespørgsel (rs indeholder nu resultatet)
Set rs = Conn.Execute(strSQL)
if Rs.EOF then
%>
<TR>
<TD colspan="6">Der er ingen rapporter.</TD>
</TR>
<%
elseif not rs.eof then
' Gennemløb Recordset (rs) med en løkke
Do
%>
<tr>
<td width="20">
<a href="/show2.asp?id=<% =RS("id") %>">
<%
Response.Write rs("id") & "<br>"
%>
</a>
</td>
<td width="70">
<%
Response.Write rs("Fornavn") & "<br>"
%>
</td>
<td width="110">
<%
Response.Write rs("Efternavn") & "<br>"
%>
</td>
</tr>
<%
' Gå til næste Record i rs
rs.MoveNext
' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Loop While Not rs.EOF
' Luk databaseforbindelse
RS.Close
Set RS = Nothing
Conn.Close
Set Conn = Nothing
%>
<%
End If
%>
</table>
Tak på forhånd!
PS: Det kunne være dejligt at få den rigtigt ASP-Kode til sidst.
i hel format ;-D
Hilsen Martin
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Martin (10-11-2008)
| Kommentar Fra : Martin |
Dato : 10-11-08 15:24 |
|
hov... En smutter ikke batabase men DATABASE
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Ukendt (10-11-2008)
| Kommentar Fra : Ukendt |
Dato : 10-11-08 16:32 |
|
"Martin" <Martin@pries.dk> skrev
> Jeg er ny i ASP faget. Så undskyld, hvis jeg spørg om noget dumt.
Der findes ingen dumme spørgsmål...
> Jeg er ved at lave et system, hvor man kan oprette, slette og
> opdatere i en database, ved hjælp af Former.
>
> Iøjeblikket er jeg i gang med at lave en opret knap.
>
>
> Side1: www.pries-gate.dk/tutorial.asp
> Side2: www.pries-gate.dk/news4.asp
> Side3: www.pries-gate.dk/indsaet.asp ( den kan i ikke se)
>
> databasen består af
> ID(auto),Fornavn,Efternavn,Foedselsdato,Telefon
>
> Så når jeg vil oprette en ny bruger/nyhed (Det er lige meget)
> Så skriver jeg informationerne ind og trykker Opret.
>
> Så bliver jeg sendt til view siden - oversigts siden. man kan se
> den er oprettet, fordi man kan se id'en. Men eller bliver
> telefonnummeret kun oprettet.?? hvorfor bliver Fornavn efternavn
> og fødselsdag ikke også gemt??
>
> Prøv selv
> Side1: www.pries-gate.dk/tutorial.asp
>
> her er ASP-Koden!
Kom med koden på din Insert-sql og Opret form...
> <table border=0 cellspacing=0>
> <tr bgcolor=#9F9F9F>
> <td><b>Id</b></td>
> <td><b>Fornavn</b></td>
> <td><b>Efternavn</b></td>
> <td width="50"><a href="/new4.asp"> <% Response.Write "Opret Ny"
> %></a></td>
>
> </tr>
> <%
> ' Databaseforbindelse - husk at angive sti til din database
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> DSN = DSN & "DBQ=" & Server.MapPath("/databaser/andeby.mdb")
> Conn.Open DSN
>
> ' SQL forespørgsel
> strSQL = "Select * from personer Order by id Desc"
> ' Udfør forespørgsel (rs indeholder nu resultatet)
> Set rs = Conn.Execute(strSQL)
>
>
> if Rs.EOF then
> %>
> <TR>
> <TD colspan="6">Der er ingen rapporter.</TD>
> </TR>
>
> <%
> elseif not rs.eof then
> ' Gennemløb Recordset (rs) med en løkke
> Do
>
>
> %>
>
> <tr>
> <td width="20">
> <a href="/show2.asp?id=<% =RS("id") %>">
> <%
> Response.Write rs("id") & "<br>"
> %>
> </a>
> </td>
> <td width="70">
> <%
> Response.Write rs("Fornavn") & "<br>"
> %>
>
> </td>
> <td width="110">
> <%
> Response.Write rs("Efternavn") & "<br>"
> %>
> </td>
> </tr>
> <%
> ' Gå til næste Record i rs
> rs.MoveNext
>
> ' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
> Loop While Not rs.EOF
>
> ' Luk databaseforbindelse
> RS.Close
> Set RS = Nothing
> Conn.Close
> Set Conn = Nothing
> %>
> <%
> End If
> %>
> </table>
Det er din Select sætning, du kører her...
Bjarne
| |
Martin (10-11-2008)
| Kommentar Fra : Martin |
Dato : 10-11-08 17:55 |
|
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/databaser/andeby.mdb")
Conn.Open DSN
strSQL = "Insert into personer ("
strSQL = "Insert into personer (Fornavn) values('" &
Request.Form("Fornavn") & "')"
strSQL = "Insert into personer (Efternavn) values('" &
Request.Form("Efternavn") & "')"
strSQL = "Insert into personer (Foedselsdato) values('" &
Request.Form("Foedselsdato") & "')"
strSQL = "Insert into personer (Telefon) values('" &
Request.Form("Telefon") & "')"
' SQL sætning eksekveres
Conn.Execute(strSQL)
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
Response.redirect ("/tutorial.asp")
%>
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Ukendt (10-11-2008)
| Kommentar Fra : Ukendt |
Dato : 10-11-08 18:07 |
|
"Martin" <Martin@pries.dk> skrev i en meddelelse
news:49186771$0$90271$14726298@news.sunsite.dk...
> <%
> ' Databaseforbindelse - husk at angive sti til din database
> Set Conn = Server.CreateObject("ADODB.Connection")
> DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
> DSN = DSN & "DBQ=" & Server.MapPath("/databaser/andeby.mdb")
> Conn.Open DSN
>
> strSQL = "Insert into personer (Fornavn) values('" &
> Request.Form("Fornavn") & "')"
> strSQL = "Insert into personer (Efternavn) values('" &
> Request.Form("Efternavn") & "')"
> strSQL = "Insert into personer (Foedselsdato) values('" &
> Request.Form("Foedselsdato") & "')"
> strSQL = "Insert into personer (Telefon) values('" &
> Request.Form("Telefon") & "')"
Prøv med:
strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato, Telefon)"
& _
" Values ('" & Request.Form("Fornavn") & "', '" &...osv...
Bjarne
| |
Martin (10-11-2008)
| Kommentar Fra : Martin |
Dato : 10-11-08 20:52 |
|
> Prøv med:
> strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato, Telefon)"
> & _
> " Values ('" & Request.Form("Fornavn") & "', '" &...osv...
> Bjarne
>
>
så den skal se sådan ud?
strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato, Telefon)"
"Values ('" & Request.Form("Fornavn") & "', '" & Request.Form("Efternavn") &
"', '" & Request.Form("Foedselsdato") & "'," & Request.Form("Telefon") & ")"
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Ukendt (10-11-2008)
| Kommentar Fra : Ukendt |
Dato : 10-11-08 21:20 |
|
"Martin" <Martin@pries.dk> skrev
>> Prøv med:
>> strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato,
>> Telefon)"
>> & _
>> " Values ('" & Request.Form("Fornavn") & "', '" &...osv...
>> Bjarne
>>
>>
>
> så den skal se sådan ud?
>
> strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato,
> Telefon)"
>
> "Values ('" & Request.Form("Fornavn") & "', '" & Request.Form("Efternavn")
> &
> "', '" & Request.Form("Foedselsdato") & "'," & Request.Form("Telefon") &
> ")"
Sådan - ikke testet...
strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato, Telefon)"
& _
" Values ('" & Request.Form("Fornavn") & "', '" & Request.Form("Efternavn")
& _
"', '" & Request.Form("Foedselsdato") & "', " & Request.Form("Telefon") &
"')"
Bjarne
| |
Ukendt (10-11-2008)
| Kommentar Fra : Ukendt |
Dato : 10-11-08 21:26 |
|
"bsn" <bsnSNABELAoncableDOTdk> skrev i en meddelelse
news:491897a8$0$15901$edfadb0f@dtext01.news.tele.dk...
>
> "Martin" <Martin@pries.dk> skrev
>>> Prøv med:
>>> strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato,
>>> Telefon)"
>>> & _
>>> " Values ('" & Request.Form("Fornavn") & "', '" &...osv...
>>> Bjarne
>>>
>>>
>>
>> så den skal se sådan ud?
>>
>> strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato,
>> Telefon)"
>>
>> "Values ('" & Request.Form("Fornavn") & "', '" &
>> Request.Form("Efternavn") &
>> "', '" & Request.Form("Foedselsdato") & "'," & Request.Form("Telefon") &
>> ")"
>
> Sådan - ikke testet...
>
Der manglede lige en enkelt pling '
strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato, Telefon)"
& _
" Values ('" & Request.Form("Fornavn") & "', '" & Request.Form("Efternavn")
& _
"', '" & Request.Form("Foedselsdato") & "', '" & Request.Form("Telefon") &
"')"
Bjarne
| |
Martin (10-11-2008)
| Kommentar Fra : Martin |
Dato : 10-11-08 21:57 |
|
> > Sådan - ikke testet...
> >
>
> Der manglede lige en enkelt pling '
> strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato, Telefon)"
> & _
> " Values ('" & Request.Form("Fornavn") & "', '" & Request.Form("Efternavn")
> & _
> "', '" & Request.Form("Foedselsdato") & "', '" & Request.Form("Telefon") &
> "')"
>
> Bjarne
>
>
Ved ikke helt hvorfor det ikke virker... har sat denne kode ind i indsaet.asp
du kan selv prøve det på www.pries-gate.dk/tutorial.asp der kan du prøve at
oprette en selv..
<%
' Databaseforbindelse - husk at angive sti til din database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/databaser/andeby.mdb")
Conn.Open DSN
Der manglede lige en enkelt pling '
strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato, Telefon)"
& _
" Values ('" & Request.Form("Fornavn") & "', '" & Request.Form("Efternavn")
& _
"', '" & Request.Form("Foedselsdato") & "', '" & Request.Form("Telefon") &
"')"
' SQL sætning eksekveres
Conn.Execute(strSQL)
' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
Response.redirect ("/tutorial.asp")
%>
Jeg kan ikke lige selv se nogen fejl.
> strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato, Telefon)"
skal stå på en linje
>& _
>" Values ('" & Request.Form("Fornavn") & "', '" & Request.Form("Efternavn")
>& _
>"', '" & Request.Form("Foedselsdato") & "', '" & Request.Form("Telefon") &
>"')"
Skal stå på en linje? altså i en lang kører!
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Martin (10-11-2008)
| Kommentar Fra : Martin |
Dato : 10-11-08 22:01 |
|
> > Der manglede lige en enkelt pling '
> > strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato, Telefon)"
> > & _
> > " Values ('" & Request.Form("Fornavn") & "', '" & Request.Form("Efternavn")
> > & _
> > "', '" & Request.Form("Foedselsdato") & "', '" & Request.Form("Telefon") &
> > "')"
Denne linje er selvfølgelig ikke med
> > Der manglede lige en enkelt pling '
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Ukendt (10-11-2008)
| Kommentar Fra : Ukendt |
Dato : 10-11-08 22:34 |
|
"Martin" <Martin@pries.dk> skrev i en meddelelse
news:4918a101$0$90266$14726298@news.sunsite.dk...
>
>> > Der manglede lige en enkelt pling '
>> > strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato,
>> > Telefon)"
>> > & _
>> > " Values ('" & Request.Form("Fornavn") & "', '" &
>> > Request.Form("Efternavn")
>> > & _
>> > "', '" & Request.Form("Foedselsdato") & "', '" &
>> > Request.Form("Telefon") &
>> > "')"
Prøv at udskrive din sql...
Sæt disse 2 linjer ind lige efter din strSQL
Response.Write strSQL
Response.End
Afprøv så den sætning du får skrevet ud direkte på access databasen...
Bjarne
| |
Jørn Andersen (10-11-2008)
| Kommentar Fra : Jørn Andersen |
Dato : 10-11-08 22:29 |
|
On 10 Nov 2008 20:56:50 GMT, Martin <Martin@pries.dk> wrote:
>du kan selv prøve det på www.pries-gate.dk/tutorial.asp der kan du prøve at
>oprette en selv..
Giver:
Microsoft VBScript compilation error '800a0400'
Expected statement
/indsaet.asp, line 10
&
^
Det tyder på, at du har problemer med linieskrift i din kode.
>strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato, Telefon)"
>& _
>" Values ('" & Request.Form("Fornavn") & "', '" & Request.Form("Efternavn")
>& _
>"', '" & Request.Form("Foedselsdato") & "', '" & Request.Form("Telefon") &
>"')"
Der skal være linieskift efter hver _ - og ingen andre steder.
strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato,
Telefon)"
>skal stå på en linje
Nej. Det skal stå på én linie sammen med:
& _
Dette skal stå på samme linie:
" Values ('" & Request.Form("Fornavn") & "', '" &
Request.Form("Efternavn") & _
Dette skal stå på samme linie:
"', '" & Request.Form("Foedselsdato") & "', '" & Request.Form("Telefon")
& "')"
Good luck!
--
Jørn Andersen,
Brønshøj
| |
Leif Neland (13-11-2008)
| Kommentar Fra : Leif Neland |
Dato : 13-11-08 17:55 |
|
Martin skrev:
> Jeg er ny i ASP faget. Så undskyld, hvis jeg spørg om noget dumt.
>
>
> Jeg er ved at lave et system, hvor man kan oprette, slette og
> opdatere i en database, ved hjælp af Former.
>
> Iøjeblikket er jeg i gang med at lave en opret knap.
>
>
Nogen foreslår
strSQL = "Insert into personer (Fornavn, Efternavn, Foedselsdato, Telefon)"
"Values ('" & Request.Form("Fornavn") & "', '" & Request.Form("Efternavn") &
"', '" & Request.Form("Foedselsdato") & "'," & Request.Form("Telefon") & ")"
Det burde forbydes at lave tutorials, der bygger sql op fra user-input.
Det er ikke sværere, og mere sikkert (umuligt(?) at lave sql-injects),
og ikke nødvendigt med alt det quote-besvær.
Det er bare en dårlig vane at bygge sql'er på den måde; man kan lige så
godt lære at gøre det rigtigt fra starten.
- - - - - - - -
'Dette skal gøres een gang, f.ex. i toppen af scriptet
updateSQL = "INSERT INTO personer (Fornavn, Efternavn, Foedselsdato,
Telefon) VALUES (?,?,?,?)"
Set objCommand = Server.CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConn
objCommand.CommandText = updateSQL
'Dette kan gøres mange gange i scriptet.
objCommand.Parameters(0).value = Request.Form("Fornavn")
objCommand.Parameters(1).value = Request.Form("Efternavn")
objCommand.Parameters(2).value = Request.Form("Foedselsdato")
objCommand.Parameters(3).value = Request.Form("Telefon")
Set objRS = objCommand.Execute()
- - - - -
Hvis du har adgang til stored procedures, kan du definere dine
procedurer een gang for alle i f.ex. install.asp, der kun skal køres når
systemet installeres, eller der bliver rettet i procduren.
Det kan gøre systemet hurtigere.
Men det lader jeg være en øvelse for læseren
| |
|
|