Tags:
vb.net
Hej, jeg har en tabel med data hvor jeg benytter en scalar query til at hente data der opfylder en betingelse. Faktisk er der flere poster der opfylder denne betingelse men scalar querien henter kun én værdi ad gangen. Min scalar query er:
SELECT id
FROM Transaktioner
WHERE kid = @kid
ORDER BY Dato
Nu er mit spørgsmål: Hvis jeg f.eks. har 10 poster fra Transaktioner der opfylder at f.eks. kid = 3, så vil min scalar query (Jeg kalder den GetAccountIDs) hente id fra den første post der opfylder kriteriet. Denne henter jeg ved at bruge linjen:
Me.TransaktionerTableAdapter1.GetAccountIDs(3)
Hvis jeg f.eks. skal hente den første post der opfylder at kid = 3. Men hvad nu hvis jeg gerne vil se den næste post der opfylder kriteriet, og den næste osv. Jeg vil selvfølgelig kun have én værdi ud ad gangen, men jeg skal bruge dem allesammen. Findes der sådan en next-funktion eller lign? Eller er der en smartere måde at gøre dette på?
2 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 8 karma
Kan du ikke bare køre i gennem en eller anden løkke i dit program og hente værdierne ud på den måde?
Hej Nu ved jeg s.flg ikke i hvilken sammenhæng du skal bruge dit udtræk.
ved ikke om denne type function kan det du ønsker er ret sikker på at den er beregnet til at hente en enkelt værdi ud med.
jeg ville nok lave en funktion du kan kalde med dit KID og en index
og så blodt lave en normal query
retunerer den i en DT
og lave en simpel
dim tmpex as integer = -1
dim returnvar as integer
For each DR as datarow in dt.rows
tmpindex += 1
if tmpindex = index then
returnvar = DR("id") 'Dette kan s.flg laves pænere med test for dbnull osv
exit for
end if
next
dt = nothing
return returnvar
en anden indgangs vinkel er at lave din opbygning af koden så du ikke skal loope data mere end en gang