/ 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
Datatyperne stemmer ikke overens i kriteri~
Fra : Rasmus Plats


Dato : 10-10-08 15:54

hej.
dette er min første indlæg :D

jeg får en fejl kode som lyder:
"
Datatyperne stemmer ikke overens i kriterieudtrykket.
"

hvad kan der være galt???

jeg kan godt få det til og virke hvis det hele står på en lang
række, men når jeg skiller det, så det bliver mere overskuelig.
får jeg fejl koden.

i fejl koden står der at det er på linje 34, fejlen er og på den
linje står der følgende:
Conn.Execute(strSQL)


hvis det er nogen hjælp så er det Lektion 20 i denne sides
tutorials.

hvor jeg gerne vil have skiftet data'erne ud, med "Request.Form"

håber nogen kan hjælpe mig :D

Med Venlig Hilsen Rasmus Plats






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

 
 
Jørn Andersen (10-10-2008)
Kommentar
Fra : Jørn Andersen


Dato : 10-10-08 17:15

On 10 Oct 2008 14:53:54 GMT, Rasmus Plats <rasmus_plats@hotmail.com>
wrote:


>Datatyperne stemmer ikke overens i kriterieudtrykket.
<snip>
>i fejl koden står der at det er på linje 34, fejlen er og på den
>linje står der følgende:
>Conn.Execute(strSQL)

Hvilket betyder, at der er fejl i din SQL-sætning.

Ved fejl i SQL-sætninger er det første man gør at udskrive SQL'en.
Det gør du ved (midlertidigt) at indsætte følgende to linier før
Conn.Execute(strSQL):

Response.Write strSQL
Response.End

Linie 2 stopper scriptet og forhindrer, at du når frem til den linie,
der giver fejl.
Se også:
<url: http://www.asp-faq.dk/article/?id=41>


Hvis ikke du nu selv kan se, hvad der der er galt, så post den udskrevne
SQL-sætning her.


>hvis det er nogen hjælp så er det Lektion 20 i denne sides
>tutorials.

Hvis du er ny i nyhedsgrupper/news groups:
Nyhedsgrupper kan tilgås på mange måder - fx via et web-interface, som
(fx) html.dk stiller til rådighed. Men det er nok mest almindeligt at
bruge en egentlig news-reader (Outlook Express, Forté Agent etc.).

De fleste vil derfor ikke vide, hvad "denne side" er (men kan dog se det
i din signatur).

Bare for at fortælle dig, at du ikke "er" på html.dk, men i et langt
bredere "univers", som kaldes Usenet, nyhedsgruppper, news groups etc.

>hvor jeg gerne vil have skiftet data'erne ud, med "Request.Form"

Du har sikkert noget lignende:
strSql = "INSERT INTO tblTabel (felt1) VALUES ('txt1')"
- og hvor du i stedet for 'txt1' vil have indsat en værdi fra din
formular. OK?

Man bør ikke indsætte formularværdier direkte [1], så start med:

strInput = Request.Form("input")

Den indsættes så med:
strSql = "INSERT INTO tblTabel (felt1) VALUES ('" & strInput & "')"

[1] Forklaring:
<url: http://www.asp-faq.dk/article/?id=95>

>håber nogen kan hjælpe mig :D

Håber det hjalp lidt.

Good luck!

--
Jørn Andersen,
Brønshøj

Rasmus Plats (11-10-2008)
Kommentar
Fra : Rasmus Plats


Dato : 11-10-08 01:37

> Hvis ikke du nu selv kan se, hvad der der er galt, så post den udskrevne
> SQL-sætning her.

strSQL = "Insert into personer1 ("

strSQL = strSQL & "Fornavn, "
strSQL = strSQL & "Efternavn, "
strSQL = strSQL & "Telefon, "
strSQL = strSQL & "Foedselsdato) "

strSQL = strSQL & "values( "

strSQL = strSQL & "Request.Form(Fornavn) ,"
strSQL = strSQL & "Request.Form(Efternavn) ,"
strSQL = strSQL & "Request.Form(Telefon) ,"
strSQL = strSQL & "Request.Form(Foedselsdato))"

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


> strInput = Request.Form("input")
>
> Den indsættes så med:
> strSql = "INSERT INTO tblTabel (felt1) VALUES ('" & strInput & "')"

jeg kan igen, få det til og virke hvis det hele står på en lang linje..
men hvis jeg nu skal opdatere min side, er det meget uoverskulig med sådan
en linje.
så kan du måske vise et eks. med hvordan man skal gøre?

når man, skriver: [ strInput = Request.Form("input") ] og input'et er f.eks
fornavn, hvad skal man så gøre med f.eks efternavn?


mvh Rasmus Plats

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

Jørn Andersen (11-10-2008)
Kommentar
Fra : Jørn Andersen


Dato : 11-10-08 03:12

On 11 Oct 2008 00:37:04 GMT, Rasmus Plats <rasmus_plats@hotmail.com>
wrote:

>> Hvis ikke du nu selv kan se, hvad der der er galt, så post den udskrevne
>> SQL-sætning her.

Jeg mente den *udskrevne* - dvs. når værdierne er med. Men ...

>strSQL = "Insert into personer1 ("
>
>strSQL = strSQL & "Fornavn, "
>strSQL = strSQL & "Efternavn, "
>strSQL = strSQL & "Telefon, "
>strSQL = strSQL & "Foedselsdato) "
>
>strSQL = strSQL & "values( "

.... det er herefter det går galt:
>strSQL = strSQL & "Request.Form(Fornavn) ,"
ret til: strSQL = strSQL & "'" Request.Form(Fornavn) "',"

>strSQL = strSQL & "Request.Form(Efternavn) ,"
ret til:
strSQL = strSQL & " '" Request.Form(Efternavn) "',"

>strSQL = strSQL & "Request.Form(Telefon) ,"
ret til:
strSQL = strSQL & " '" Request.Form(Telefon) "',"

>strSQL = strSQL & "Request.Form(Foedselsdato))"
ret til:
strSQL = strSQL & " '" Request.Form(Foedselsdato) "')"


Som du kan se, er der to ting galt. Når du skriver:
1.
strSQL = strSQL & "Request.Form(Fornavn) ,"
- så lægger du strengen:
strSql
sammen med strengen:
"Request.Form(Fornavn) ,"

Men det du ønsker er *værdien* af:
Request.Form(Fornavn)
samt strengen:
","

Det er kun strenge, der skal i "streng" - hvordimod vaible, som
indeholder strenge skal stå somn variable.

2. Den anden ting er, at der i SQL'en skal ' ' om strengværdier. I
udskrevet form:
INSERT INTO tblTabel (Fornavn) VALUES ('Peter')

- så hvis alle dine database-felter er tekst-felter, skal der altså
enkelt-pliger om. Men ikke omm talfelter.

Dato-felter er en helt tredje variant. Hvis dit datofelt i virkeligheden
er et tekstfelt, skal der plinger om.
Men dato-felter bør være i dato-format - se www.asp-faq.dk.
- elelr prøv i første gang uden dato-feltet/-værdien


<snip>
>> strInput = Request.Form("input")
>>
>> Den indsættes så med:
>> strSql = "INSERT INTO tblTabel (felt1) VALUES ('" & strInput & "')"
>
>jeg kan igen, få det til og virke hvis det hele står på en lang linje..
>men hvis jeg nu skal opdatere min side, er det meget uoverskulig med sådan
>en linje.

Der bruger man en _ - en "forlænger" - fx:
strSql = "INSERT INTO tblTabel (felt1)" & _
" VALUES ('" & strInput & "')"

>så kan du måske vise et eks. med hvordan man skal gøre?
>
>når man, skriver: [ strInput = Request.Form("input") ] og input'et er f.eks
>fornavn, hvad skal man så gøre med f.eks efternavn?

strFornavn = Request.Form("fornavn")
strEfternavn = Request.Form("efternavn")


Good luck!

--
Jørn Andersen,
Brønshøj

Rasmus Plats (11-10-2008)
Kommentar
Fra : Rasmus Plats


Dato : 11-10-08 13:53

Mange tak for hjælpen.

dog kan jeg stadig ikke få
strSQL = strSQL & "'"Request.Form("Fornavn")"'," til og virke...

men til gengæld virker det meget fint, når man
strFornavn = Request.Form("Fornavn")

og så sætter det ind

strSQL = strSQL & " '" & strFornavn & "',"


så igen.. mange tak for hjælpen

mvh Rasmus Plats




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

Jørn Andersen (11-10-2008)
Kommentar
Fra : Jørn Andersen


Dato : 11-10-08 22:12

On 11 Oct 2008 12:52:32 GMT, Rasmus Plats <rasmus_plats@hotmail.com>
wrote:

>Mange tak for hjælpen.
>
>dog kan jeg stadig ikke få
>strSQL = strSQL & "'"Request.Form("Fornavn")"'," til og virke...

Det skal det heller ikke. Du mangler to &'er:
strSQL = strSQL & "'" & Request.Form("Fornavn") & "',"

Du kan sikkert se, at den er fuldstændig magen til:

strSQL = strSQL & "'" & strFornavn & "',"

- bortset fra, at:
Request.Form("Fornavn")
er erstattet med:
strFornavn

>men til gengæld virker det meget fint, når man
>strFornavn = Request.Form("Fornavn")
>
>og så sætter det ind
>
>strSQL = strSQL & " '" & strFornavn & "',"
>
>
>så igen.. mange tak for hjælpen

OBS: Husk at foretage input-validering jvf. det link jeg agv dig:
<url: http://www.asp-faq.dk/article/?id=95>

Specielt i INSERT- og UPDATE-forespørgsler kan du får smadret din
database, hvis en ondsindet person kommer efter dig.

Ved tekststrenge ville jeg:
1.
strFornavn = Trim("" & Request.Form("Fornavn"))
- denne Trim og "" sikrer, at hvis værdien er Empty, så får du en tom
streng ud (""). Desuden fjerner den evt. mellemrum, som indtasteren har
kommet til at skrive i starten eller slutningen af feltet.

2.
strFornavn = plingEscape(strFornavn)
- se linket. Blokerer for SQL-injektion.

3.
If strFornavn = "" Then
' Skriv en fejlmeddelelse om at feltet skal udfyldes
Else
' Kør videre
End If

Input-valideringen kan udvides med andre kriterier, som kan medvirke til
at sikre, at du får så korrekte data som muligt ind i din database.
Er det fx tal-felter kan man checke, om værdien er numerisk osv. osv.


Good luck!

--
Jørn Andersen,
Brønshøj

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

Månedens bedste
Årets bedste
Sidste års bedste