/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Skrive til Acces Database
Fra : søren


Dato : 07-09-04 21:08

Hej derude.

*Skal lige siges at jeg er ny i ASP-gamet*

Jeg har et problem: Jeg har en formular med forskellige
tekstfelter hvor indholdet skel sendes til min database (Acces),
men det er kun teksten fra det sidste tekstfelt der bliver
skrevet til databasen. Min request-kode ser sådan ud:

<html>
<title>Opdatere data i databasen</title>
<head>
</head>
<body>
<%
' 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("/database1.mdb")
Conn.Open DSN


' SQL sætning opbygges
strSQL = "Insert into personer (Fornavn) values('" &
Request.Form("Fornavn") & "')"
strSQL = "Insert into personer (Efternavn) values('" &
Request.Form("Efternavn") & "')"
strSQL = "Insert into personer (Telefonnummer) values('" &
Request.Form("Telefonnummer") & "')"
strSQL = "Insert into personer (Postnummer) values('" &
Request.Form("Postnummer") & "')"

' SQL sætning eksekveres
Conn.Execute(strSQL)

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>
<h1>Databasen er opdateret!</h1>
</body>
</html>

Altså er det kun postnummeret som bliver skrevet til databasen,
hvorfor?

--
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

 
 
Jens Gyldenkærne Cla~ (07-09-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 07-09-04 21:32

søren skrev:

> ' SQL sætning opbygges
> strSQL = "Insert into personer (Fornavn) values('" &
> Request.Form("Fornavn") & "')"

Her har du en sql-sætning der indsætter én post med en værdi i
fornavn og blanke/default-værdier i alle andre felter.

> strSQL = "Insert into personer (Efternavn) values('" &
> Request.Form("Efternavn") & "')"

Her er det samme, blot med efternavn i stedet for fornavn.
Sætningen ovenfor med fornavn er nu glemt, uden at du har kørt den.

[snip, 2 ekstra tildelinger til strSQL]

> ' SQL sætning eksekveres
> Conn.Execute(strSQL)

Her kører du den sætning du har gemt i strSQL - det vil sige
sætningen der indsætter en ny post med et postnummer.



> Altså er det kun postnummeret som bliver skrevet til databasen,
> hvorfor?

Du begår to fejl. Dels overskriver du strSQL i stedet for at udvide
den og dels har du fået galt fat i INSERT-syntaksen i sql.

Vi kan tage de to fejl hver for sig.

Prøv at se følgende to kodestumper:

a)
   Dim str
   str = "Hej "
   str = "med "
   str = "dig."
   Response.write str

b)
   Dim str2
   str2 = "Hej "
   str2 = str2 & "med "
   str2 = str2 & "dig."
   Response.write str2

I eksempel a udskrives "dig." - og intet andet. Det er fordi hver
af de tre tildelingslinjer (str = ...) starter forfra. I eksempel b
udskrives "Hej med dig." - fordi str2 i de to sidste
tildelingslinjer sættes til den eksisterende værdi af str2 + noget
andet.

Mht. INSERT-syntaksen skal du vide at man har én INSERT-sætning til
én post - uanset hvor mange felter der skal udfyldes. Syntaksen er
INSERT INTO tabelnavn (felt1, felt2, ...) VALUES (værdi1, værdi2,
....)

Du kan se mere om at indsætte i databaser her:
<http://html.dk/tutorials/asp/lektion20.asp>
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

søren (08-09-2004)
Kommentar
Fra : søren


Dato : 08-09-04 20:26

Jens GyldenkærneClausen wrote in
dk.edb.internet.webdesign.serverside.asp:
> søren skrev:
>
> > ' SQL sætning opbygges
> > strSQL = "Insert into personer (Fornavn) values('" &
> > Request.Form("Fornavn") & "')"
>
> Her har du en sql-sætning der indsætter én post med en værdi i
> fornavn og blanke/default-værdier i alle andre felter.
>
> > strSQL = "Insert into personer (Efternavn) values('" &
> > Request.Form("Efternavn") & "')"
>
> Her er det samme, blot med efternavn i stedet for fornavn.
> Sætningen ovenfor med fornavn er nu glemt, uden at du har kørt den.
>
> [snip, 2 ekstra tildelinger til strSQL]
>
> > ' SQL sætning eksekveres
> > Conn.Execute(strSQL)
>
> Her kører du den sætning du har gemt i strSQL - det vil sige
> sætningen der indsætter en ny post med et postnummer.
>
>
>
> > Altså er det kun postnummeret som bliver skrevet til databasen,
> > hvorfor?
>
> Du begår to fejl. Dels overskriver du strSQL i stedet for at udvide
> den og dels har du fået galt fat i INSERT-syntaksen i sql.
>
> Vi kan tage de to fejl hver for sig.
>
> Prøv at se følgende to kodestumper:
>
> a)
>    Dim str
>    str = "Hej "
>    str = "med "
>    str = "dig."
>    Response.write str
>
> b)
>    Dim str2
>    str2 = "Hej "
>    str2 = str2 & "med "
>    str2 = str2 & "dig."
>    Response.write str2
>
> I eksempel a udskrives "dig." - og intet andet. Det er fordi hver
> af de tre tildelingslinjer (str = ...) starter forfra. I eksempel b
> udskrives "Hej med dig." - fordi str2 i de to sidste
> tildelingslinjer sættes til den eksisterende værdi af str2 + noget
> andet.
>
> Mht. INSERT-syntaksen skal du vide at man har én INSERT-sætning til
> én post - uanset hvor mange felter der skal udfyldes. Syntaksen er
> INSERT INTO tabelnavn (felt1, felt2, ...) VALUES (værdi1, værdi2,
> ....)
>
> Du kan se mere om at indsætte i databaser her:
> <http://html.dk/tutorials/asp/lektion20.asp>
> --
> Jens Gyldenkærne Clausen
> Svar venligst under det du citerer, og citer kun det der er
> nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
> hvordan på http://usenet.dk/netikette/citatteknik.html


--
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

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste