Avatar billede zipper20 Nybegynder
29. maj 2003 - 10:29 Der er 35 kommentarer og
1 løsning

Tilføj data til db

Hvad er galt..???

----------news.htm------------

<FORM ACTION="newsdata.ASP" METHOD="GET">
<P><FONT SIZE="2" COLOR="white" FACE="Arial">Tilmeld dig vores nyhedsbrev ved at udfylde nedenst&aring;ende skema.</FONT></P>

<P><FONT SIZE="2" COLOR="white" FACE="Arial">Bem&aelig;rk! Alle kan modtage vores nyhedsbrev, men du skal v&aelig;re
over 18 &aring;r for at deltage i vores konkurrencer.</FONT><B><FONT SIZE="2" COLOR="white" FACE="Arial"></FONT></B></P>
<CENTER>
<P>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="51%">
    <TR>
        <TD WIDTH="41%"><B><FONT SIZE="2" COLOR="white" FACE="Arial">Navn</FONT></B></TD>
        <TD WIDTH="59%">
            <CENTER>
            <P><INPUT TYPE="TEXT" NAME="Navn" SIZE="25">
</CENTER>
        </TD>
    </TR>
    <TR>
        <TD WIDTH="41%"><B><FONT SIZE="2" COLOR="white" FACE="Arial">Email</FONT></B></TD>
        <TD WIDTH="59%">
            <CENTER>
            <P><INPUT TYPE="TEXT" NAME="Email" SIZE="25">
</CENTER>
        </TD>
    </TR>
    <TR>
        <TD WIDTH="41%"><B><FONT SIZE="2" COLOR="white" FACE="Arial">F&oslash;dselsdag (dd.mm.yy)</FONT></B></TD>
        <TD WIDTH="59%">
            <CENTER>
            <P><INPUT TYPE="TEXT" NAME="Birth" SIZE="25" MAXLENGTH="8">
</CENTER>
        </TD>
    </TR>
    <TR>
        <TD COLSPAN="2">
            <CENTER>
            <P><INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Tilmeld">
</CENTER>
        </TD>
    </TR>
</TABLE>

</CENTER>
</FORM>

-------------------newsdata.asp-----------
<%@LANGUAGE="VBScript"%>

<!--#include file="connect.asp"-->

<%
Set data = Server.CreateObject ("ADODB.Recordset")
data.Open "SELECT * FROM News", MyConn
%>

<%
data.AddNew
  data("Navn") = Request.QueryString("Navn")
  data("Email") = Request.QueryString("Email")
  data("Birth") = Request.QueryString("Birth")
data.Update

Response.Redirect("news_ok.htm")
%>


Får en ... siden kan ikke vises... har testet connect.asp... min forbindelse til db'en virker perfekt... hvad går der galt ???
Avatar billede keysersoze Ekspert
29. maj 2003 - 10:33 #1
funktioner -> internetindstillinger -> avanceret -> fjern kryds i "vis meddelelse om uskadelige http-fejl"

så får du formentlig en fejlbesked du kan bruge til noget
Avatar billede zipper20 Nybegynder
29. maj 2003 - 10:40 #2
ADODB.Recordset error '800a0cb3'

Object or provider is not capable of performing requested operation.

/newsdata.ASP, line 11

Det brude sQ da virke ??? Eller hvad ?

<%
Set data = Server.CreateObject ("ADODB.Recordset")
data.Open "SELECT * FROM News", MyConn
%>

<%
data.AddNew
  data("Navn") = Request.QueryString("Navn")
  data("Email") = Request.QueryString("Email")
  data("Birth") = Request.QueryString("Birth")
data.Update

Response.Redirect("news_ok.htm")
%>

Den øverste er linie 11... ????
Avatar billede zipper20 Nybegynder
29. maj 2003 - 10:42 #3
Hov... min fejl... det er data.AddNew som er linie 11...
Avatar billede keysersoze Ekspert
29. maj 2003 - 10:44 #4
prøv at lav en "rigtig" insert;

SQL = "INSERT INTO news (navn, email, birth) VALUES('" & Request.QueryString("Navn") & "', '" & Request.QueryString("Email") & "', '" & Request.QueryString("Birth") & "')"

og så er det måske ikke så smart at overføre værdierne i querystrings - ekstremt usikkert! brug METHOD="POST" i din form i stedet og få fat i værdierne med Request.Form("xxx")
Avatar billede zipper20 Nybegynder
29. maj 2003 - 10:48 #5
HUH??? Ikke helt med ? Det andet virker da også, eller burde da gøre det... har da brugt det før... sikkerhed er ikke et spørgsmål her... det er ligegyldigt.
Avatar billede zipper20 Nybegynder
29. maj 2003 - 10:54 #6
Hvordan mener du jeg skal gøre med request.form ??? Er ikke med ...
Avatar billede keysersoze Ekspert
29. maj 2003 - 10:58 #7
request.form skal du bruge hvis du benytter method="post" i din form - det er meget mere sikkert og er generelt bedre. Hvis du holder på at bruge method="get" skal du bare bruge request.querystring som hele tiden...

Jeg har aldrig arbejdet med den form for insert så jeg ved ikke hvad fejlen betyder eller hvad du kan gøre ved det - siger bare at en "rigtig" insert som den jeg giver arbejder en del bedre end det du gør.
Avatar billede eagleeye Praktikant
29. maj 2003 - 10:58 #8
Prøv at tilføje ,1,3 til data.Open linje :

data.Open "SELECT * FROM News", MyConn,1,3
Avatar billede zipper20 Nybegynder
29. maj 2003 - 10:59 #9
Ja okay... det er fair nok, men kender ikke til request.from... har set men aldrig brugt... hvordan gør jeg ?
Avatar billede keysersoze Ekspert
29. maj 2003 - 11:03 #10
det har jeg lige fortalt - benyt method="post" i din form og i stedet for request.querystring skriver du request.form
Avatar billede zipper20 Nybegynder
29. maj 2003 - 11:04 #11
Skal jeg ændre noget i news.htm ??? Altså udover GET -> POST
Avatar billede keysersoze Ekspert
29. maj 2003 - 11:07 #12
nope - ellers havde jeg skrevet det ;o)
Avatar billede zipper20 Nybegynder
29. maj 2003 - 11:07 #13
Naeh... det virker heller ikke... det burde sQ da ikke være så svært... pinligt nok *GG*
Avatar billede zipper20 Nybegynder
29. maj 2003 - 11:11 #14
Altså ... jeg har udskiftet
data.AddNew med det du "key" skrev... og tilføjet det eagle skrev... men stadig intet... den redirecter til news_ok.htm men skriver intet i min db...
Avatar billede keysersoze Ekspert
29. maj 2003 - 11:16 #15
du må heller ikke blande de to ting sammen - så SKAL det gå galt!

----------news.htm------------
<FORM ACTION="newsdata.ASP" METHOD="POST">
<P><FONT SIZE="2" COLOR="white" FACE="Arial">Tilmeld dig vores nyhedsbrev ved at udfylde nedenst&aring;ende skema.</FONT></P>

<P><FONT SIZE="2" COLOR="white" FACE="Arial">Bem&aelig;rk! Alle kan modtage vores nyhedsbrev, men du skal v&aelig;re
over 18 &aring;r for at deltage i vores konkurrencer.</FONT><B><FONT SIZE="2" COLOR="white" FACE="Arial"></FONT></B></P>
<CENTER>
<P>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="51%">
    <TR>
        <TD WIDTH="41%"><B><FONT SIZE="2" COLOR="white" FACE="Arial">Navn</FONT></B></TD>
        <TD WIDTH="59%">
            <CENTER>
            <P><INPUT TYPE="TEXT" NAME="Navn" SIZE="25">
</CENTER>
        </TD>
    </TR>
    <TR>
        <TD WIDTH="41%"><B><FONT SIZE="2" COLOR="white" FACE="Arial">Email</FONT></B></TD>
        <TD WIDTH="59%">
            <CENTER>
            <P><INPUT TYPE="TEXT" NAME="Email" SIZE="25">
</CENTER>
        </TD>
    </TR>
    <TR>
        <TD WIDTH="41%"><B><FONT SIZE="2" COLOR="white" FACE="Arial">F&oslash;dselsdag (dd.mm.yy)</FONT></B></TD>
        <TD WIDTH="59%">
            <CENTER>
            <P><INPUT TYPE="TEXT" NAME="Birth" SIZE="25" MAXLENGTH="8">
</CENTER>
        </TD>
    </TR>
    <TR>
        <TD COLSPAN="2">
            <CENTER>
            <P><INPUT TYPE="SUBMIT" NAME="Submit" VALUE="Tilmeld">
</CENTER>
        </TD>
    </TR>
</TABLE>

</CENTER>
</FORM>
----------------------

-------------------newsdata.asp-----------
<%

'FORBIND TIL DIN DATABASE

SQL = "INSERT INTO news (navn, email, birth) VALUES('" & Request.Form("Navn") & "', '" & Request.Form("Email") & "', '" & Request.Form("Birth") & "')"
Myconn.Execute(SQL)

Response.Redirect("news_ok.htm")

%>
Avatar billede zipper20 Nybegynder
29. maj 2003 - 11:20 #16
Har kopieret direkte fra det du skrev...

Resultat :

Microsoft JET Database Engine error '80040e14'

The INSERT INTO statement contains the following unknown field name: 'navn'. Make sure you have typed the name correctly, and try the operation again.

/newsdata.ASP, line 12

& "', '" & Request.Form("Email") & "', '" & Request.Form("Birth") & "')"
Avatar billede keysersoze Ekspert
29. maj 2003 - 11:24 #17
hvad hedder dine felter i databasen?
Avatar billede zipper20 Nybegynder
29. maj 2003 - 11:30 #18
Navn, Email, Birth

Har lige genskrevet navnene i db'en for at sikre der ikke var noget, men samme besked...
Microsoft JET Database Engine error '80040e07'

Data type mismatch in criteria expression.

/newsdata.ASP, line 12
Avatar billede keysersoze Ekspert
29. maj 2003 - 11:33 #19
hvilke felt-typer er de forskellige felter? tekst, notat, tal... ?
Avatar billede zipper20 Nybegynder
29. maj 2003 - 11:38 #20
Tekst tekst, og birth er short date...
Avatar billede keysersoze Ekspert
29. maj 2003 - 11:45 #21
så prøv noget i retning af dette;

SQL = "INSERT INTO news (navn, email, birth) VALUES('" & Request.Form("Navn") & "', '" & Request.Form("Email") & "', #" & Request.Form("Birth") & "#)"
Myconn.Execute(SQL)
Avatar billede zipper20 Nybegynder
29. maj 2003 - 11:50 #22
Det er det samme... jeg ved ikke om det er fordi min udbyder skodder lidt . *GG*
Avatar billede keysersoze Ekspert
29. maj 2003 - 11:54 #23
nej - skyldes udelukkende programmering...

SQL = "INSERT INTO news (navn, email, birth) VALUES('" & Request.Form("Navn") & "', '" & Request.Form("Email") & "', #" & Request.Form("Birth") & "#)"
response.write SQL
response.end
'Myconn.Execute(SQL)

hvad står så?
Avatar billede zipper20 Nybegynder
29. maj 2003 - 12:05 #24
Der står ...


INSERT INTO news (navn, email, birth) VALUES('Kim Bang', 'jps6kb@hotmail.com', #10.10.80#)
Avatar billede zipper20 Nybegynder
29. maj 2003 - 12:06 #25
Den skrever nærmest bare på skærmen hvad det var jeg postede...
Avatar billede eagleeye Praktikant
29. maj 2003 - 12:11 #26
Når man indsætter datoer via SQL til access så bruge US eller UK format som er yyyy-mm-dd eller mm-dd-yyyy.

Det kan formaters med Year,month og day functionerne

Sår prøv:

datoStr = Year(Request.Form("Birth")) & "-" & Month(Request.Form("Birth")) & "-" & day(Request.Form("Birth"))
SQL = "INSERT INTO news (navn, email, birth) VALUES('" & Request.Form("Navn") & "', '" & Request.Form("Email") & "', #" & datoStr & "#)"
Avatar billede zipper20 Nybegynder
29. maj 2003 - 12:15 #27
Okay... den melder ikke fejl, men skriver tilgengæld heller ikke noget i databasen...
Avatar billede eagleeye Praktikant
29. maj 2003 - 12:17 #28
Du har husket at fjerne det som udskrier?

response.write SQL
'response.end
Myconn.Execute(SQL)
Avatar billede zipper20 Nybegynder
29. maj 2003 - 12:17 #29
Ja... filen ser sådan ud nu...

<%@LANGUAGE="VBScript"%>

<!--#include file="connect.asp"-->

<%
Set data = Server.CreateObject ("ADODB.Recordset")
data.Open "SELECT * FROM News", MyConn,1,3
%>

<%
datoStr = Year(Request.Form("Birth")) & "-" & Month(Request.Form("Birth")) &

"-" & day(Request.Form("Birth"))
SQL = "INSERT INTO news (navn, email, birth) VALUES('" & Request.Form("Navn")

& "', '" & Request.Form("Email") & "', #" & datoStr & "#)"


Response.Redirect("news_ok.htm")
%>
Avatar billede eagleeye Praktikant
29. maj 2003 - 12:19 #30
Du mangler det som indsætter i database, i øjebllet laver du bare en SQL sætning
Så tilføj denne linje:

Myconn.Execute(SQL)

Efter linjen med SQL = "..



datoStr = Year(Request.Form("Birth")) & "-" & Month(Request.Form("Birth")) & "-" & day(Request.Form("Birth"))
SQL = "INSERT INTO news (navn, email, birth) VALUES('" & Request.Form("Navn") & "', '" & Request.Form("Email") & "', #" & datoStr & "#)"

Myconn.Execute(SQL)
Avatar billede zipper20 Nybegynder
29. maj 2003 - 12:24 #31
Virker... mercí...
Her er dine point... du har fortjent dem *LOL*
Avatar billede keysersoze Ekspert
29. maj 2003 - 12:29 #32
sorry - var lige væk :)
Avatar billede eagleeye Praktikant
29. maj 2003 - 12:30 #33
keysersoze  vil du ikke lige havde ½ delen du har jo lavet for arbejdet
Avatar billede eagleeye Praktikant
29. maj 2003 - 12:31 #34
keysersoze  svar lige her: http://www.eksperten.dk/spm/358511
Avatar billede keysersoze Ekspert
29. maj 2003 - 12:31 #35
hov! kan se at det er løst :) ja - der kan man bare se... man kan ikke vende ryggen til et øjeblik uden at frugten af ens hårde arbejde bliver høstet af en anden ;oP
Avatar billede keysersoze Ekspert
29. maj 2003 - 12:33 #36
heh - helt i orden :)
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