Dies ist eine einfache Funktion, die TRUE zurückgibt, wenn der Benutzer in der Benutzertabelle existiert, sonst false.Ist etwas mit meiner Logik in diesem ADO.NET-Code? es ist immer falsch zurückgegeben?
Aus irgendeinem Grund ist es immer falsch zurückgegeben, habe ich sogar die WHERE-Klausel entfernt und ich werde immer noch falsch? (Eine manuelle Prüfung in Query Analyzer sagt mir, ich habe viele Zeilen?)
Public Shared Function DoesUserExist(ByVal userID As Integer) As Boolean
Dim retValue As Boolean
retValue = False
Using conn As New SqlConnection(GetConnectionString())
'Dim cmd As SqlCommand = New SqlCommand("SELECT user_ID FROM users WHERE user_ID = @userID", conn)
Dim cmd As SqlCommand = New SqlCommand("SELECT user_ID FROM users", conn)
cmd.Parameters.Add("@userID", SqlDbType.NVarChar).Value = userID
cmd.CommandType = CommandType.Text
conn.Open()
Dim reader As SqlDataReader = cmd.ExecuteReader()
'If Not reader Is Nothing Then
' HttpContext.Current.Response.Write("<br>Null")
'End If
If reader.Read() Then
retValue = True
End If
conn.Close()
cmd.Dispose()
End Using
retValue = False
Return retValue
End Function
Was ist los, nur zu tun: retValue = reader.Read() – rein
Das ist machbar. Ich weise nur auf den Unterschied zwischen beiden Codes hin. –