Avatar billede harkamp Nybegynder
09. juni 2003 - 13:52 Der er 4 kommentarer og
2 løsninger

update ved hjælp af formular

Jeg kan ikke finde ud af hvad der går galt her:

Jeg skal opdatere en database gennem en formular, som jeg har hentet data ind i gennem request.querystring. Det virker fint. Men når jeg så skal opdatere databasen sender jeg formularen til siden indsaet_opdater_hold.asp - her får jeg følgende fejlmeddelelse:

Microsoft VBScript compilation error '800a0401'

Expected end of statement

/hold/indtast/indsaet_opdater_hold.asp, line 66

strSQL = "UPDATE holdoversigt_test SET (nummer,navn,dag,tid,sted,laerer,center,kategori,beskrivelse,vises) values('" & Request.Form("nummer") & "','" & Request.Form("navn") & "','" & Request.Form("dag") & "','" & Request.Form("tid") & "','" & Request.Form("sted") & "','" & Request.Form("laerer") & "','" & Request.Form("center") & "','" & Request.Form("kategori") & "','" & Request.Form("beskrivelse") & "','" & Request.Form("vises") & "') WHERE id = & Request.Form("id")"

Hvad går der galt?

Database-tabelfeltet "id" vises ikke i formularen, men ser således ud:  <input type="hidden" name="id" value="<%=rs("id")%>">

Database-tabelfeltet "vises" er i øvrigt en ja eller nej mulighed - altså input-type=radio.

Jeg håber, nogen kan hjælpe mig.

Skriv venligt ikke for indforstået, da jeg ikke er den store haj.
Avatar billede eagleeye Praktikant
09. juni 2003 - 13:54 #1
Der mangler et ":


strSQL = "UPDATE holdoversigt_test SET (nummer,navn,dag,tid,sted,laerer,center,kategori,beskrivelse,vises) values('" & Request.Form("nummer") & "','" & Request.Form("navn") & "','" & Request.Form("dag") & "','" & Request.Form("tid") & "','" & Request.Form("sted") & "','" & Request.Form("laerer") & "','" & Request.Form("center") & "','" & Request.Form("kategori") & "','" & Request.Form("beskrivelse") & "','" & Request.Form("vises") & "') WHERE id = " & Request.Form("id")"
Avatar billede eagleeye Praktikant
09. juni 2003 - 13:55 #2
arh det er også en update, og du bruger SQL syntax for en insert. UPDTAE ER:

UPDATE tabel SET kolonne='xxx', kolonne2='yyy', kolonne3='rrr' WHERE id=32
Avatar billede keysersoze Guru
09. juni 2003 - 13:55 #3
du skal opdatere på denne måde;

strSQL = "UPDATE holdoversigt_test SET nummer = '" & Request.Form("nummer") & "', navn = '" & Request.Form("navn") & "', ... etc WHERE id = " & Request.Form("id")


jeg kan ikke helt finde frem til om du brugte get eller post i din form - men bruger du get skal du benytte request.querystring i stedet for request.form
Avatar billede eagleeye Praktikant
09. juni 2003 - 14:00 #4
Det også nemere at del SQLen op over flere linjer sådan her og med UPDATE syntax:


strSQL = "UPDATE holdoversigt_test SET  "
strSQL = strSQL & " nummer = '" & Request.Form("nummer") & "', "
strSQL = strSQL & " navn = '" & Request.Form("navn") & "', "
strSQL = strSQL & " dag = '" & Request.Form("dag") & "', "
strSQL = strSQL & " tid = '" & Request.Form("tid") & "', "
strSQL = strSQL & " sted = '" & Request.Form("sted") & "', "
strSQL = strSQL & " laerer = '" & Request.Form("laerer") & "', "
strSQL = strSQL & " center = '" & Request.Form("center") & "', "
strSQL = strSQL & " kategori = '" & Request.Form("kategori") & "', "
strSQL = strSQL & " beskrivelse = '" & Request.Form("beskrivelse") & "', "
strSQL = strSQL & " vises = '" & Request.Form("vises") & "' "
strSQL = strSQL & " WHERE id = " & Request.Form("id")
Avatar billede eagleeye Praktikant
09. juni 2003 - 14:06 #5
Database-tabelfeltet "vises" er i øvrigt en ja eller nej mulighed - altså input-type=radio.

Man ligger true eller 1 for Ja og false eller 0 for Nej i et ja/nej felt.
Har du to radio knapper for vises ?? Så kan du sætte value for den ene til true og den anden til false.

Også skal linjen
strSQL = strSQL & " vises = '" & Request.Form("vises") & "' "

Rettes til:
strSQL = strSQL & " vises = " & Request.Form("vises") & " "
Avatar billede harkamp Nybegynder
11. juni 2003 - 21:44 #6
Tusind tak for hjælpen. Jeg er meget,MEGET glad. Jeg tillader mig at dele pointene, da jeg kan se fra tidspunkterne at der I har svaret på næsten samme tidspunkt. Dog vil jeg give Eagleeye 150 og Keysersoze 50. Igen, mange tak til jer begge. Det er en fornøjelse, at kunne trække på jeres kompetancer.

vh Harkamp :-)
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