Gå til innhold

Anbefalte innlegg

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
Videoannonse
Annonse
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

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

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 av SadoZorro
Lenke til kommentar

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 av frossensofa
Lenke til kommentar

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

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

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 av SadoZorro
Lenke til kommentar

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...