/ 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
indsætter nogle data men ikke resten
Fra : MooreHøjer


Dato : 06-05-04 12:50

Hej

Jeg vil sætte nogle værdier ind i min database men den sætter kun
nogle af dem ind. resten af felterne lader den stå tomme og
kommer med følgende fejl:

Feiltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] Feltet login.Brugernavn
kan ikke inneholde en Null-verdi fordi Required-egenskapen for
feltet er satt til True. Skriv inn en verdi i feltet.
/indsaet.asp, linje 22


Linie 19-22 ser sådan her ud:

strSQL = "Insert into login (Celle, Lovsang, Tolk, Ungdom, Boern,
Lederskab, Moedevaerter) values('" & Request.Form("celle") & "',
'" & Request.Form("lovsang") & "', '" & Request.Form("tolk") &
"', '" & Request.Form("ungdom") & "', '" & Request.Form("boern")
& "', '" & Request.Form("lederskab") & "', '" &
Request.Form("moedevaerter") & "')"

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


Det der undre mig er bare at jeg lidt tidlige i mit dokument har
sat andre data ind i samme database og der virkede det fint. De
linie jeg brugte til det ser sådan her ud (linie 13-16)

strSQL = "Insert into login (Brugernavn, Password, Fornavn,
Mellemnavn, Efternavn, Celleret, Lovsangret, Tolkret, Ungdomret,
Boernret, Lederskabret, Moedevaerterret) values('" &
Request.Form("Bruger") & "', '" & Request.Form("Password") & "',
'" & Request.Form("Fornavn") & "', '" &
Request.Form("Mellemnavn") & "', '" & Request.Form("Efternavn") &
"', '" & Request.Form("celleret") & "', '" &
Request.Form("lovsangret") & "', '" & Request.Form("tolkret") &
"', '" & Request.Form("ungdomret") & "', '" &
Request.Form("boernret") & "', '" & Request.Form("lederskabret")
& "', '" & Request.Form("moedevaerterret") & "')"

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


Så hvorfor virker det et sted og ikke det andet?

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jens Gyldenkærne Cla~ (06-05-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 06-05-04 13:07

MooreHøjer skrev:

> Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
> [Microsoft][ODBC Microsoft Access Driver] Feltet login.Brugernavn
> kan ikke inneholde en Null-verdi fordi Required-egenskapen for
> feltet er satt til True. Skriv inn en verdi i feltet.

Det tyder på at du har obligatoriske felter som ikke indgår i din
insert-sætning. Hvis et felt er markeret som obligatorisk (NOT
NULL), skal det tildeles en værdi når man opretter en ny post. Det
kan enten ske vha. en standardværdi for feltet eller ved at man
eksplicit indsætter data i feltet).


> strSQL = "Insert into login (Celle, Lovsang, Tolk, Ungdom, Boern,
> Lederskab, Moedevaerter) values('" & Request.Form("celle") & "',
> '" & Request.Form("lovsang") & "', '" & Request.Form("tolk") &
> "', '" & Request.Form("ungdom") & "', '" & Request.Form("boern")
> & "', '" & Request.Form("lederskab") & "', '" &
> Request.Form("moedevaerter") & "')"


Hver gang der er problemer med en sql-sætning er det en god ide at
udskrive den resulterende sql-kommando.

Se hvordan det gøres her: <http://asp-faq.dk/article/?id=41>.


> Det der undre mig er bare at jeg lidt tidlige i mit dokument har
> sat andre data ind i samme database og der virkede det fint. De
> linie jeg brugte til det ser sådan her ud (linie 13-16)

Jeg tror du har misforstået hvordan en INSERT-kommando virker. Jeg
går ud fra at de oplysninger der er i sql-sætningen ovenfor (Celle,
Lovsang m.fl.) hører sammen med de oplysninger du har i din
fungerende sql-sætning (brugernavn, password, m.fl.). Men når du
kører to INSERT-kommandoer kommer oplysningerne i to forskellige
poster.

En INSERT-kommando kan _kun_ indsætte nye poster. Den kan ikke
ændre eksisterende poster - det bruger man UPDATE til.

NB: Det kan være problematisk at sende formdata direkte videre til
en database. Se hvordan du kan lave basal sikring af dine
databasekald her: <http://asp-faq.dk/article/?id=95>.
--
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

MooreHøjer (06-05-2004)
Kommentar
Fra : MooreHøjer


Dato : 06-05-04 13:53

> Jeg tror du har misforstået hvordan en INSERT-kommando virker. Jeg
> går ud fra at de oplysninger der er i sql-sætningen ovenfor (Celle,
> Lovsang m.fl.) hører sammen med de oplysninger du har i din
> fungerende sql-sætning (brugernavn, password, m.fl.). Men når du
> kører to INSERT-kommandoer kommer oplysningerne i to forskellige
> poster.
>
> En INSERT-kommando kan _kun_ indsætte nye poster. Den kan ikke
> ændre eksisterende poster - det bruger man UPDATE til.

Jeg regner med at det du mener er at de to sql-sætnimger skal skrives
sammen til én. Så det har jeg gjort, og nu virker det.

Når man har brug for hjælp kan man altid regne med Jens
GyldenkærneClausen. Tusind tak!



--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Christian R. Larsen (06-05-2004)
Kommentar
Fra : Christian R. Larsen


Dato : 06-05-04 13:07

"MooreHøjer" <jesusismyking@ofir.dk> skrev i en meddelelse
news:409a2663$0$3057$14726298@news.sunsite.dk...
> Hej
>
> Jeg vil sætte nogle værdier ind i min database men den sætter kun
> nogle af dem ind. resten af felterne lader den stå tomme og
> kommer med følgende fejl:
>
> Feiltype:
> Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
> [Microsoft][ODBC Microsoft Access Driver] Feltet login.Brugernavn
> kan ikke inneholde en Null-verdi fordi Required-egenskapen for
> feltet er satt til True. Skriv inn en verdi i feltet.
> /indsaet.asp, linje 22
>
>
> Linie 19-22 ser sådan her ud:
>
> strSQL = "Insert into login (Celle, Lovsang, Tolk, Ungdom, Boern,
> Lederskab, Moedevaerter) values('" & Request.Form("celle") & "',
> '" & Request.Form("lovsang") & "', '" & Request.Form("tolk") &
> "', '" & Request.Form("ungdom") & "', '" & Request.Form("boern")
> & "', '" & Request.Form("lederskab") & "', '" &
> Request.Form("moedevaerter") & "')"

Du mangler feltet Brugernavn i dit udtryk, og da det er mandatory at udfylde
feltet, vil databasen returnere en fejl, når du tilføjer en post, uden at
indsætte noget i dette felt.




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

Månedens bedste
Årets bedste
Sidste års bedste