I have the following function:
Public Function CheckHasRoom(people_id As String, semester As String, year As String)
' Don't let folks already registered for a room register for another.
Dim RoomSelected As String
Using dbContext As pbu_housingEntities = New pbu_housingEntities
Dim hasroom = (From p In dbContext.Residents _
Where p.people_code_id = people_id _
Where p.semester = semester _
Where p.year = year _
Where (p.room = "" _
Or p.building Is Nothing) _
Select p)
If hasroom.Any() Then
' Let them keep going.
RoomSelected = "N"
Else
' Redirect them to the main page.
RoomSelected = "Y"
' HttpContext.Current.Response.Redirect("default.aspx")
End If
End Using
Return RoomSelected
End Function
But it is bugging out at hasroom.Any() saying, “Input string was not in a correct format.” Any thoughts on why? This is returning a collection of rows just like where I use this same code elsewhere without issue?
As DaveMackay suggested in his comment it looks to me like one of the where clauses is causing the error. The reason it errors at the .Any() point of the code is that this is the where the query is actually executed, up until then you’ve declared the intent of the query but it hasn’t actually happened yet. If you wrap the query in parenthesis and add .ToList() the end of it you’ll likely get en error on the line where the query is declared as this will force immediate execution.
From the error you got I’d guess it’s the p.room = “” that is doing it, is p.room a string value? If it’s not that then check all the other clauses, are they all strings? It looks unlikely to me that year especially would be stored as a string.