Avatar billede gabi Novice
17. juli 2007 - 16:49 Der er 6 kommentarer og
1 løsning

Hjælp til at tilføje en ny post til databasen

Jeg er fuldstændig grøn på området ASP og har fået en forespørgsel til at fungere ved hjælp af en tutorial, men nu vil jeg også gerne kunne tilføje en ny post til databasen, som består af en tabel over rollespilsspillere. De enkelte spillere skal have mulighed for selv at tilføje sig på listen.
Jeg har til formålet lavet en formular med følgende felter:

<form action="modtag.asp" method="post" name="spiller" id="spiller">
<input name="navn" type="text" id="navn">
<input name="ingame" type="text" id="ingame">
<input name="karakter" type="text" id="karakter">
<input name="adresse" type="text" id="adresse">
<input name="postnr" type="text" id="postnr">
<input name="by" type="text" id="by">
<input name="telefon" type="text" id="telefon">
<input name="mail" type="text" id="mail">
<select name="alder" id="alder">
<option>1990</option>
<option>1991</option>
<option>1992</option>
<option>1993</option>
<option>1994</option>
</select>
<input type="submit" value="Gem">

Derefter har jeg forsøgt med 2 forskellige ASP-dokumenter

Opstillingen på det første er jeg meget usikker på, idet jeg har strikket det sammen ved at kigge rundt her inde på Eksperten.

<%

'Databaseforbindelse
set conn = server.createobject("ADODB.connection")
conn.Open "DBQ=" & server.mappath("../db/medlemmer.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"

' Tilføj data i database
strSQL = "Insert into Medlemmer ("

strSQL = strSQL & "Navn,"
strSQL = strSQL & "Ingame,"
strSQL = strSQL & "Karakter,"
strSQL = strSQL & "Adresse,"
strSQL = strSQL & "Postnummer,"
strSQL = strSQL & "By,"
strSQL = strSQL & "Telefonnummer,"
strSQL = strSQL & "E-mail,"
strSQL = strSQL & "Alder)"

strSQL = strSQL & "values ("

strSQL = strSQL &"('"&Request.Form("navn")&"',"
strSQL = strSQL & Request.Form ("ingame")&"',"
strSQL = strSQL & Request.Form ("karakter")&"',"
strSQL = strSQL & Request.Form ("adresse")&"',"
strSQL = strSQL & Request.Form ("postnr")&"',"
strSQL = strSQL & Request.Form ("by")&"',"
strSQL = strSQL & Request.Form ("telefon")&"',"
strSQL = strSQL & Request.Form ("mail")&"',"
strSQL = strSQL & Request.Form ("alder")& "')"

' SQL sætning eksekveres <-------linie 113
Conn.Execute(strSQL)>------------linie 114


' Tak for tilmelding
Response.Write "<H1>Tak for din tilmelding</H1>"


' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>

Jeg får denne fejlmeddelelse:

Fejlmeddelelse:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.
/asp/modtag.asp, line 114


Så prøvede jeg på en anden måde:

<%

'Databaseforbindelse
set conn = server.createobject("ADODB.connection")
conn.Open "DBQ=" & server.mappath("../db/medlemmer.mdb") & ";Driver={Microsoft Access Driver (*.mdb)}"

' Tilføj data i database
strSQL = "Insert into Medlemmer (Navn,Ingame,Karakter,Adresse,Postnummer,By,Telefonnummer,E-mail,Alder) values('"&Request.Form("navn")&"','"&Request.Form("ingame")&"','"&Request.Form("karakter")"'&'"&Request.Form("adresse")"'&'"Request.Form("postnr")"'&'"Request.Form("by")"'&'"Request.Form("telefon")"'&'"Request.Form("mail")"'&'"Request.Form("alder")&"')">----linie 89


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


' Tak for tilmelding
Response.Write "<H1>Tak for din tilmelding</H1>"


' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing
%>


Og fik denne fejl:

Microsoft VBScript compilation error '800a0401'
Expected end of statement
/asp/modtag1.asp, line 89
strSQL = "Insert into Medlemmer (Navn,Ingame,Karakter,Adresse,Postnummer,By,Telefonnummer,E-mail,Alder) values('"&Request.Form("navn")&"','"&Request.Form("ingame")&"','"&Request.Form("karakter")"'&'"&Request.Form("adresse")"'&'"Request.Form("postnr")"'&'"Request.Form("by")"'&'"Request.Form("telefon")"'&'"Request.Form("mail")"'&'"Request.Form("alder")&"')"


Denne "opskrift" fandt jeg ellers her http://www.eksperten.dk/spm/783037

Så nu ved jeg virkelig ikke hvad der er galt - håber og tror på at I kan hjælpe mig.
Avatar billede keysersoze Ekspert
17. juli 2007 - 18:02 #1
i dit første script: der er "by" i hvert fald et reserveret ord så der skal [] omkring;

strSQL = strSQL & "[By],"

i dit andet script: der vil opstå samme problem med "by" - og derudover mangler du i hvert fald en masse kommaer;

strSQL = "Insert into Medlemmer (Navn, Ingame, Karakter, Adresse, Postnummer, [By], Telefonnummer, E-mail, Alder) values('"&Request.Form("navn")&"', '"&Request.Form("ingame")&"', '"&Request.Form("karakter")&"', '"&Request.Form("adresse")&"','"&Request.Form("postnr")&"', '"&Request.Form("by")&"', '"&Request.Form("telefon")&"','"&Request.Form("mail")&"','"&Request.Form("alder")&"')"
Avatar billede erikjacobsen Ekspert
17. juli 2007 - 18:31 #2
Også:  [E-mail]
Avatar billede gabi Novice
17. juli 2007 - 19:38 #3
1000 tak begge to. Nu virker begge eksemplerne.
Det var vist et typisk eksempel på en fejl 40 - jeg var også ved at blive lidt rundtosset af alle disse små men meget vigtige tegn.
Desuden har jeg ændret feltnavnene i min database for hhv. By og E-mail til hhv. Town og Mailadresse (så driller de da ikke mere).
Nu er der så bare uddeling af point tilbage. Som nybegynder ved jeg ikke rigtig hvordan, og hvem skal nu have dem? keysersoe kom med svaret på det meste, men uden kommentaren fra erikjacobsen havde det ikke hjulpet. Så hvis I spørger mig, må det være erikjacobsen, der løber af med pointene. Hvordan gør jeg så nu?
Avatar billede erikjacobsen Ekspert
17. juli 2007 - 20:01 #4
Ingen point til mig, tak.
Avatar billede gabi Novice
17. juli 2007 - 20:58 #5
Hmm godt så. Så kan jeg jo give point til keysersoze i stedet for, men det kræver vist et svar, hvis jeg har forstået systemet rigtigt.
Avatar billede keysersoze Ekspert
17. juli 2007 - 23:16 #6
du får et svar her :)
Avatar billede gabi Novice
18. juli 2007 - 01:49 #7
Fint - og du får så dine point her.
Tror godt nok ikke lige at mit eksempel nr. 1 med linieskiftene virker alligevel, men det leger jeg lidt med, og så må jeg jo vende tilbage. Det andet eks. virker i hvert tilfælde, og det var det vigtigste i denne omgang. Nok en gang tak for hjælpen.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester