25. oktober 2003 - 22:50Der 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.
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
Synes godt om
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.
Synes godt om
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
Ja, du skal lave din join rigtig. Der må være felter, der skal være ens i de to tabeller.
Synes godt om
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.
Synes godt om
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 :)
Du skal finde de to felter i de to tabeller du bruger, der har noget med hinanden at gøre
Synes godt om
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.
Nej, du har ikke fundet de to felter. Ellers har du lavet sql-sætningen om. Hvad knytter de 2 tabeller sammen?
Synes godt om
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"
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.