Hej, Jag vet inte om det är bäst men när jag gör jämföringar använder jag en datareader ExecuteScalar är till för att hämta endast ett värde. tex resultatet från en Count(*) fråga, så det ska väl fungera bra för ditt ändamål.Hämta data
Vilket är det bästa sättat att hämta data från en databas om jag bara ska hämta ett record. Ja vill t.ex. hämta uppgifter för en viss person och kolla dess användar id mot ett variabelvärde. I vanlig asp kunde man enkelt skapa ett recordset.
ex.
<code>
if rsAnv("anvId")=intAnvId then
strUser=true
End if
</code>
Jag har kört med myCommand.ExecuteScalar i asp.net, typ som nedan, vet ej om det är det bästa. Vad som ska tilläggas är att jag inte är intresserad av att visa något data, bara hämta och jämföra.
<code>
Try
myCommand.Connection.Open()
intId = CType(myCommand.ExecuteScalar, Integer)
myCommand.Connection.Close()
Catch ex As OleDbException
LblMess.Text = "Fel"
End Try
If intId <> 0 Then
Response.Redirect("test.aspx")
Else
LblMess.Text = "Hej"
End If
</code>Sv: Hämta data
Sv: Hämta data
Det snabbaste sättet jag känner till för att bara hämta ett record är att använda en Stored Procedure (SQL server) och att göra en ExecuteNonQuery som returnerar Output-parametrar (man behöver skapa output params i sin Stored Proc). Alltså inget resultatset returneras. Nu slipper SQL servern att skapa ett resultatset och det kräver mindre resurser på servern = mer skalbart.
Ola