frossensofa Skrevet 1. november 2004 Del Skrevet 1. november 2004 Jeg får en feilmelding på denne SQL-setningen, det er en syntax feil som ligger i Session-delen, den klarer ikke å hente ut verdien, prøvd med et tall da virker det. Feilmeldingen: Syntaksfeil (operator mangler) i spørreuttrykket spmID= and riktigsvar=true SQL-setingen: sql = "select valgtSvarID from TblAvgittSvar where tilSpmID=" & session("HentSpmID" & l & "") & " and brukerID=" & session("innLoggetBruker") & "" Kode: DB-koblinger gjort tidligere... dim l = 1 dim o for o=1 to j DBforbindelse.open() sql = "select valgtSvarID from TblAvgittSvar where tilSpmID=" & session("HentSpmID" & l & "") & " and brukerID=" & session("innLoggetBruker") & "" l = l + 1 DBkommando = new OleDbCommand(sql,DBforbindelse) Leser = DBkommando.ExecuteReader dim p = 1 while Leser.Read session("HentValgtSvarID" & p & "") = Leser("valgtSvarID") Label1.text += "HentValgtSvarID er " & session("HentValgtSvarID" & p & "") & "<br>" p = p + 1 end while Leser.Close() DBforbindelse.Close() next Lenke til kommentar
SadoZorro Skrevet 1. november 2004 Del Skrevet 1. november 2004 Hei Prøv å endre denne session("HentSpmID" & l & "") til session("HentSpmID") Lenke til kommentar
frossensofa Skrevet 1. november 2004 Forfatter Del Skrevet 1. november 2004 grunnen til at jeg har " & l & " er fordi jeg skal hente ut forskjellige variabler. F.eks HentSpmID1, HentSpmID2 osv. så der det står HentSpmID" & l & " skal utfallet være HentSpmID1. skjønner? Lenke til kommentar
SadoZorro Skrevet 1. november 2004 Del Skrevet 1. november 2004 Skjønner Det skal fungere helt fint, ser ut som at session verdien er tom, sjekk at du gir den verdi og at den telleren du bruker begynner på 1 der du gir session variabelen verdi. Lenke til kommentar
frossensofa Skrevet 1. november 2004 Forfatter Del Skrevet 1. november 2004 her er hele kodesnutten... Lenke til kommentar
frossensofa Skrevet 1. november 2004 Forfatter Del Skrevet 1. november 2004 sub Page_Load(sender as Object, e as EventArgs) if session("innLoggetBruker") = 0 then response.redirect("loginelev.aspx") end if hentSvart() end sub function hentSvart() dim sum = 0 dim i 'for i=1 to 20 dim DBforbindelse as OleDbConnection dim DBkommando as OleDbCommand 'dim HentSpmID dim Leser as OleDbDataReader dim fstring as string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.mappath("oblig3DB.mdb") DBforbindelse = new OleDbConnection(fstring) DBforbindelse.open() Dim sql as string = "select tilSpmID from TblAvgittSvar where brukerID=" & session("innLoggetBruker") & " order by tilSpmID" DBkommando = new OleDbCommand(sql,DBforbindelse) Leser = DBkommando.ExecuteReader dim j = 1 while Leser.Read session("HentSpmID" & j & "") = Leser("tilSpmID") Label1.text += "SpmID er " & session("HentSpmID" & j & "") & "<br>" j = j +1 end while Leser.Close() DBforbindelse.Close() 'dim HentSvarID dim m dim k = 1 for m=1 to j DBforbindelse.open() sql = "select svarID from TblSvar where spmID=" & session("HentSpmID" & k & "") & " and riktigsvar=true" k = k + 1 DBkommando = new OleDbCommand(sql,DBforbindelse) Leser = DBkommando.ExecuteReader dim n = 1 while Leser.Read session("HentSvarID" & n & "") = Leser("svarID") Label1.text += "HentSvarID er " & session("HentSvarID" & n & "") & "<br>" n = n +1 end while Leser.Close() DBforbindelse.Close() next 'dim HentValgtSvarID dim l = 1 dim o for o=1 to j DBforbindelse.open() sql = "select valgtSvarID from TblAvgittSvar where tilSpmID=" & session("HentSpmID" & l & "") & " and brukerID=" & session("innLoggetBruker") & "" l = l + 1 DBkommando = new OleDbCommand(sql,DBforbindelse) Leser = DBkommando.ExecuteReader dim p = 1 while Leser.Read session("HentValgtSvarID" & p & "") = Leser("valgtSvarID") Label1.text += "HentValgtSvarID er " & session("HentValgtSvarID" & p & "") & "<br>" p = p + 1 end while Leser.Close() DBforbindelse.Close() next dim q = 1 dim r for r=0 to j If session("HentValgtSvarID" & q & "") = session("HentSvarID" & q & "") then sum = sum + 1 q = q + 1 end if next Label1.text += "summen ble " & sum end function 'SELECT Employees.Name, Orders.Product 'FROM Employees, Orders 'WHERE Employees.Employee_ID=Orders.Employee_ID Lenke til kommentar
SadoZorro Skrevet 1. november 2004 Del Skrevet 1. november 2004 dim j = 1 while Leser.Read session("HentSpmID" & j & "") = Leser("tilSpmID") Label1.text += "SpmID er " & session("HentSpmID" & j & "") & "<br>" j = j +1 end while her vil j bli en mer en antall rader. dim l = 1 dim o for o=1 to j - 1 DBforbindelse.open() sql = "select valgtSvarID from TblAvgittSvar where tilSpmID=" & session("HentSpmID" & l & "") & " and brukerID=" & session("innLoggetBruker") & "" l = l + 1 ... trekk fra 1 fra j i denne loopen Lenke til kommentar
frossensofa Skrevet 1. november 2004 Forfatter Del Skrevet 1. november 2004 Mange Takk!! . Selv om jeg ikke var helt med.. men kan du forklare hvorfor summen blir feil? bill.hive.no/olelar Brukernavn og passord er like, velg en av brukerene på venstre side... Lenke til kommentar
SadoZorro Skrevet 1. november 2004 Del Skrevet 1. november 2004 (endret) hei Skriv ut de disse 2 verdiene i loopen. EDIT: Skriv dette ut før if setningen Label1.text &= session("HentValgtSvarID" & q & "") & "--" & session("HentSvarID" & q & "") If session("HentValgtSvarID" & q & "") = session("HentSvarID" & q & "") then sum = sum + 1 q = q + 1 end if --------------------- Når du leser inn verdiene her: dim j = 1 while Leser.Read session("HentSpmID" & j & "") = Leser("tilSpmID") Label1.text += "SpmID er " & session("HentSpmID" & j & "") & "<br>" j = j +1 end while så legger du til 1 på j etter at du har lest inn, hvis du endrer denne til EDIT: Dette fører til at når du har lest inn i session(HentSpmID4) så vil j øke til 5, da vil du få en for mye senere. dim j = 0 while Leser.Read j = j +1 session("HentSpmID" & j & "") = Leser("tilSpmID") Label1.text += "SpmID er " & session("HentSpmID" & j & "") & "<br>" end while så vil det ikke være nødvendig å trekke 1 fra j senere Her er løsningen på sum: for r=0 to j If session("HentValgtSvarID" & q & "") = session("HentSvarID" & q & "") then sum = sum + 1 end if q = q + 1 next flytt q = q + 1 ut av if setningen Endret 1. november 2004 av SadoZorro Lenke til kommentar
frossensofa Skrevet 1. november 2004 Forfatter Del Skrevet 1. november 2004 (endret) Det hjalp, men jeg tror jeg har rota for mye i koden... nå får jeg dette resultatet: SpmID er 1 SpmID er 2 SpmID er 3 SpmID er 4 HentSvarID er 2 HentSvarID er 4 HentSvarID er 5 HentSvarID er 9 HentValgtSvarID er HentValgtSvarID er 2 HentValgtSvarID er 4 HentValgtSvarID er 6 9--9--------summen ble 5 tok bort denne koden, for jeg hentet inn en backup. så du ikke blir distrahert av den. Endret 1. november 2004 av frossensofa Lenke til kommentar
SadoZorro Skrevet 1. november 2004 Del Skrevet 1. november 2004 dim p = 0 while Leser.Read p = p + 1 Label1.text += "HentValgtSvarID er " & session("HentValgtSvarID" & p & "") & "<br>" session("HentValgtSvarID" & p & "") = Leser("valgtSvarID") end while her skriver du ut verdien før du henter den. Endre til : dim p = 0 while Leser.Read p = p + 1 session("HentValgtSvarID" & p & "") = Leser("valgtSvarID") Label1.text += "HentValgtSvarID er " & session("HentValgtSvarID" & p & "") & "<br>" end while Lenke til kommentar
frossensofa Skrevet 1. november 2004 Forfatter Del Skrevet 1. november 2004 Ok. fikk fikset det, men summen blir jo feil da, den skal jo være 3... SpmID er 1 SpmID er 2 SpmID er 3 SpmID er 4 HentSvarID er 2 HentSvarID er 4 HentSvarID er 5 HentSvarID er 9 HentValgtSvarID er 2 HentValgtSvarID er 4 HentValgtSvarID er 6 HentValgtSvarID er 9 9--9--------summen ble 5 Lenke til kommentar
frossensofa Skrevet 1. november 2004 Forfatter Del Skrevet 1. november 2004 Tusen takk uansett, du har spart meg for mange timers arbeid. Lenke til kommentar
SadoZorro Skrevet 1. november 2004 Del Skrevet 1. november 2004 (endret) Hvis du legger til denne i if setningen som sjekker om du skal legge til i summen så vil du få rett sum. if session("HentValgtSvarID" & q & "") = session("HentSvarID" & q & "") And Not session("HentValgtSvarID" & q & "") is nothing then sum = sum + 1 end if Da sjekker du om den session variabelen har noen verdi. For hvis begge er nothing så vil det bli lagt til 1 i sum Håper dette virker, og lykke til med obligen EDIT: Du kan også la r begynne på en i for-løkka, siden det ikke er noen session("HentSvarID0") eller session("HentValgtSvarID0"). Endret 1. november 2004 av SadoZorro Lenke til kommentar
frossensofa Skrevet 2. november 2004 Forfatter Del Skrevet 2. november 2004 Jeg vet ikke om du er her ennå eller om det er noen andre som kan hjelpe, men er det noe som kan forklare hvorfor dette skjer? Utfallet : SpmID er 1 SpmID er 2 SpmID er 3 SpmID er 4 HentSvarID er 2 --2 HentSvarID er 4 --4 HentSvarID er 5 --5 HentSvarID er 9 --9 HentValgtSvarID er 2 2--9 <-----------------------------*her HentValgtSvarID er 4 4--9 HentValgtSvarID er 6 6--9 HentValgtSvarID er 9 9--9 9--9 -- -- -- summen ble 1 HentSvarID er riktig svar, HentValgtSvarID er det brukeren har svart, summen er der HentSvarID og HentValgtSvarID er like. 2--9 = HentValgtSvarID--HentSvarID Du kan se på websiden, hvis du ønsker det ---> bill.hive.no Så kommer det jeg ikke skjønner, hvorfor blir --* verdien alltid 9 når det der skal stå det som HentSvarID skrev ut over? Koden som den ser ut nå: sub Page_Load(sender as Object, e as EventArgs) if session("innLoggetBruker") = 0 then response.redirect("loginelev.aspx") end if hentSvart() end sub function hentSvart() dim sum = 0 dim i dim DBforbindelse as OleDbConnection dim DBkommando as OleDbCommand dim Leser as OleDbDataReader dim fstring as string = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.mappath("oblig3DB.mdb") DBforbindelse = new OleDbConnection(fstring) DBforbindelse.open() Dim sql as string = "select tilSpmID from TblAvgittSvar where brukerID=" & session("innLoggetBruker") & " order by tilSpmID" DBkommando = new OleDbCommand(sql,DBforbindelse) Leser = DBkommando.ExecuteReader dim j = 0 while Leser.Read j = j +1 session("HentSpmID" & j & "") = Leser("tilSpmID") Label1.text += "SpmID er " & session("HentSpmID" & j & "") & "<br>" end while Leser.Close() DBforbindelse.Close() 'dim HentSvarID dim m dim k = 0 for m=1 to j DBforbindelse.open() k = k + 1 sql = "select svarID from TblSvar where spmID=" & session("HentSpmID" & k & "") & " and riktigsvar=true" DBkommando = new OleDbCommand(sql,DBforbindelse) Leser = DBkommando.ExecuteReader dim n = 0 while Leser.Read n = n +1 session("HentSvarID" & n & "") = Leser("svarID") Label1.text += "HentSvarID er " & session("HentSvarID" & n & "") & "<br>" Label1.text += session("HentValgtSvarID" & n & "") & "--" & session("HentSvarID" & n & "") & "<br>" end while Leser.Close() DBforbindelse.Close() next 'dim HentValgtSvarID dim l = 0 dim o for o=1 to j DBforbindelse.open() l = l + 1 sql = "select valgtSvarID from TblAvgittSvar where tilSpmID=" & session("HentSpmID" & l & "") & " and brukerID=" & session("innLoggetBruker") & "" DBkommando = new OleDbCommand(sql,DBforbindelse) Leser = DBkommando.ExecuteReader dim p = 0 while Leser.Read p = p + 1 session("HentValgtSvarID" & p & "") = Leser("valgtSvarID") Label1.text += "HentValgtSvarID er " & session("HentValgtSvarID" & p & "") & "<br>" Label1.text += session("HentValgtSvarID" & p & "") & "--" & session("HentSvarID" & p & "") & "<br>" end while Leser.Close() DBforbindelse.Close() next dim q = 1 dim r for r=1 to j Label1.text += session("HentValgtSvarID" & q & "") & "--" & session("HentSvarID" & q & "") & "<br>" if session("HentValgtSvarID" & q & "") = session("HentSvarID" & q & "") And Not session("HentValgtSvarID" & q & "") is nothing then sum = sum + 1 end if q = q + 1 next Label1.text += "summen ble " & sum end function Lenke til kommentar
SadoZorro Skrevet 2. november 2004 Del Skrevet 2. november 2004 Hei Sjekk at det er korrekt lagret i databasen. --------------- while Leser.Read p = p + 1 session("HentValgtSvarID" & p & "") = Leser("valgtSvarID") Label1.text += "HentValgtSvarID er " & session("HentValgtSvarID" & p & "") & "<br>" Label1.text += session("HentValgtSvarID" & p & "") & "--" & session("HentSvarID" & p & "") & "<br>" end while ---------------- her kan du skrive ut direkte det som er i databasen ved å endre til: while Leser.Read p = p + 1 session("HentValgtSvarID" & p & "") = Leser("valgtSvarID") Label1.text += "HentValgtSvarID er " & Leser("valgtSvarID") & "<br>" Label1.text += session("HentValgtSvarID" & p & "") & "--" & session("HentSvarID" & p & "") & "<br>" end while Lykke til Har det travelt nå, kan eventuellt se på det i kveld Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå