12. juli 2002 - 13:39Der er
4 kommentarer og 2 løsninger
tjek poster inden indskriv i databasen
Hej Jeg er rimelig asp newbie, hvilket mit problem nok oxo afspejler .. Jeg har en side som skal skrive data i en access database, men inden skal den tjekke om feltet "drinknavn" eksistere i databasen i forvejen, men jeg kan ikke få min kode til at virke, dne skriver ikkke ind og kommer ik med nogen fejlmeddelse. Håber der er en der, kan / vil rette mine fejl i koden :)
--- kodestart --- <% If action = "" then response.write "drinks" ' 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("../database/database.mdb") Conn.Open DSN response.write "<form action=""indskriv.asp?action=save"" method=""post"">" response.write "<TABLE BORDER=""0"">" response.write "<TR><TD>Dit navn</TD><TD><input type=""text"" value=""ukendt"" name=""indskrivnavn"" size=""49""></TD></TR>" response.write "<TR><TD>Cocktail navn</TD><TD><input type=""text"" value="""" name=""drinknavn"" size=""49""></TD></TR>" SQL2 = "Select * From drinkstype Order by drinkstype" Set rs2 = conn.execute(SQL2) response.write "<TR><TD>Drinkstype type</TD><TD><select name=""drinkstype"">" Do while not rs2.eof strdrinkstype = rs2("drinkstype") response.write "<option value="""& strdrinkstype &""">"& strdrinkstype &"</option>" rs2.movenext loop response.write "</select></TD></TR>" response.write "<TR><TD>Antal glas</TD><TD><input type=""text"" value=""1"" name=""antal"" size=""49""></TD></TR>" response.write "<TR><TD VALIGN=""TOP"">Ingredienser</TD><TD><textarea rows=""6"" name=""ingredienser"" cols=""37""></textarea></TD></TR>" response.write "<TR><TD VALIGN=""TOP"">Fremgangs måde</TD><TD><textarea name=""hvordan"" rows=""6"" cols=""37""></textarea></TD></TR>" response.write "<TR><TD VALIGN=""TOP"">Evt. kommentar</TD><TD><textarea rows=""6"" name=""kommentar"" cols=""37""></textarea></TD></TR>" response.write "<input type=""hidden"" name=""REMOTE_ADDR"">" response.write "<input type=""hidden"" name=""now"">" response.write "<input type=""hidden"" name=""date"">" response.write "<TR><TD></TD><TD><input type=""submit"" value=""Gem""> <input type=""reset"" value=""Slet Alt""></TD></TR>" response.write "</form><table>" Else SQL3 =" Select Count(*) as antal from drinks where drinknavn = '" & Request.Form("drinknavn") & "'" set rs3 = conn.execute(SQL3) if rs3("antal") = 0 then
' SQL sætning opbygges strSQL = "Insert into drinks ("
Hej du! .. Jeg har kigget lidt på din kode og prøvet at gøre det lidt nemmere for dig. Personligt foretrækker jeg at holde ASP-kode og HTML kode adskilt så meget som muligt. SÅ her er den "nye" kode: .. Jeg har KUN redigeret formatteringen, ikke ændret noget af koden:
rs.Close set rs = Nothing Conn.Close Set Conn = Nothing END IF END IF %>
</div> </body> </html>
Der er to linier der specielt undrer mig:
Som aho_mnetier sagde IF action = "" THEN ... og sql streng nr 2 SQL2 = "Select * From drinkstype Order by drinkstype" .. skal der ikke stå: SQL2 = "Select * From drinks Order by drinkstype" ??? Jeg kigger lige videre på det. Men prøv at indsætte mit nye forslag i din fil.
action som du skriver det, er en variabel. Den vil ALTID være lig med "" når den står øverst i ASP dokumentet.
Derfor ser du ALTID kun den øverste del af dokumentet udskrevet. Den indeholder jo ikke noget særlig ASP programmering og DERFOR kommer der ingen fejlmelding. Det eneste din side gør, er at vise nogle udtræk fra databasen...
Her er den nye kode som du skal bruge, den burde virke:
<% IF request.form("formnummer1") = "" THEN response.write "drinks"
Kotelet > jeg har prøvet at gøre som du skriv, kigget på koden osv .. men når jeg sætter den ind og køre den får jeg følgende fejl: Fejltype: Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8) Et objekt er obligatorisk: 'Conn' /www/indskriv.asp, line 78 og linie 78 er set rs3 = conn.execute(SQL3) /vipdk
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.