Avatar billede Slettet bruger
25. oktober 2003 - 22:50 Der er 14 kommentarer og
1 løsning

Datatype Mismatch, hvorfor?

Jeg har en hjemmeside hvor jeg prøver at få vist noget fra en database, men den vil ikke som jeg vil have den til.

Jeg har en fest tabel, bruger tabel og inviteret tabel, jeg vil have den til at vise de fester jeg er inviteret til, men den bliver ved med at skriv datatype mismatch.

Nedenfor er siden:

<%
'SQL forespørgsel'
SQLinv = "SELECT * FROM inviterettabel, festtabel WHERE inviterettabel.MemberID = '" & session("MemberID") & "'"

'Udfør forespørgsel (rs indeholder nu resultatet)'
Set rsinv = Conn.Execute(SQLinv)

%>

<font color="#CC0000">INVITERET TIL PARTY:</font><br>

<%
If rsinv.EOF then
Response.Write "Ingen Inviterede<br>"
Else
           
' Gennemløb Recordset (rs) med en løkke
While Not rsinv.EOF
           
' Udskriv værdien af kolonnen Titel
Response.Write rsinv("Titel") & "<br>"

' Gå til næste Record i rs
rsinv.MoveNext
           
' Fortsæt indtil rs er gennemløbet (EOF = End Of File)
Wend
End If
           
%>
<%
'Luk databaseforbindelse'
rs.close
Set rs = Nothing

Conn.Close
Set Conn = Nothing
%>

<% end function %>


Jeg kan godt skrive session(MemberID) ud, så den er tilstede, men den bliver ved med at komme med fejlen:

Error Type:
Microsoft JET Database Engine (0x80040E07)
Data type mismatch in criteria expression.
/cap/Default.asp, line 50

Og det kan jeg ikke forstå, linie 50 er der hvor jeg afvikler SQL, Set rsinv = Conn.Execute(SQLinv)

Håber I kan hjælpe mig, så jeg kan få det til at virke.
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 22:51 #1
Måske

SQLinv = "SELECT * FROM inviterettabel, festtabel WHERE inviterettabel.MemberID = " & session("MemberID")

men det er vist ikke det eneste ;)
Avatar billede bufferzone Praktikant
25. oktober 2003 - 22:53 #2
Den fejl kommer oftest hvis du forsøge at skrive noget ned i access tabellen der ikke passer til den datatype tabellen forventer. Hvis du f.eks. skriver bogstaver ned i et tal felt, eller har sat et felt der skal indeholde et telefon nummer som et talfeldt og den der skriver telefonnummeret laver et mellemrum i det så det ikke mere opfattes som et heltal.

PRøv at ændre datatypen i accessdatabasen
Avatar billede Slettet bruger
25. oktober 2003 - 22:55 #3
>> Bufferzone, det er det der er mærkeligt for jeg prøver jo ikke at skrive til databasen, men bare læse fra den.
Avatar billede Slettet bruger
25. oktober 2003 - 23:03 #4
>> erikjacobsen, det får den til at komme videre, men den viser alle festerne, ikke kun dem brugeren er inviteret til
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 23:07 #5
Ja, du skal lave din join rigtig. Der må være felter, der skal være ens i de to tabeller.
Avatar billede Slettet bruger
25. oktober 2003 - 23:09 #6
Ja, men hvordan får jeg den så til kun at vise dem der har med denne bruger at gøre, for jeg kan ikke joine tre tabeller så vidt jeg ved.
Avatar billede Slettet bruger
25. oktober 2003 - 23:12 #7
Kan man så lave en if sætning nede hvor den skal vise det der siger at den kun skal vise de fester der har session ("memberID") eller hvad, jeg er ikke helt sej til det her endu :)
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 23:14 #8
Du skal finde de to felter i de to tabeller du bruger, der har noget med hinanden at gøre
Avatar billede Slettet bruger
25. oktober 2003 - 23:18 #9
Dethar jeg gjort, men den skriver stadig alle festerne ud,´alle festerne har en connection mellem de to tabeller, man har ikke en fest uden nogen er inviteret.

Jeg vil bare have den til at vise de fester som den aktuelle bruger er blevet inviteret til.
Avatar billede erikjacobsen Ekspert
25. oktober 2003 - 23:20 #10
Nej, du har ikke fundet de to felter. Ellers har du lavet sql-sætningen om.
Hvad knytter de 2 tabeller sammen?
Avatar billede Slettet bruger
26. oktober 2003 - 00:03 #11
Det kan jeg godt se, faktisk så er det PartyID der binder dem sammen, men problemet ligger i at jeg skal have den til kun at vise dem der er relevant for den enkelte bruger, hvordan gør jeg så det?

SQL kommer så til at være:

'SQL forespørgsel'
SQLinv = "SELECT * FROM inviterettabel, festtabel WHERE inviterettabel.PartyID = festtabel.PartyID"
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 00:14 #12
SQLinv = "SELECT * FROM inviterettabel, festtabel WHERE inviterettabel.PartyID = festtabel.PartyID AND inviterettabel.MemberID = '" & session("MemberID")
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 00:14 #13
SQLinv = "SELECT * FROM inviterettabel, festtabel WHERE inviterettabel.PartyID = festtabel.PartyID AND inviterettabel.MemberID = " & session("MemberID")

...sådan!
Avatar billede Slettet bruger
26. oktober 2003 - 00:59 #14
Det er fedt nu virker det, og ja det siger jo sig selv, man stirrer sig bare blind på det engang imellem.

Mange tak for hjælpen erik, kan du ikke smide et svar så du kan få pointene.
Avatar billede erikjacobsen Ekspert
26. oktober 2003 - 12:20 #15
jo, det tror jeg godt jeg kan finde ud af
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