I’ve got some code to try and loop through LINQ results, but it doesn’t seem to be working.
HERE’S THE CODE
Public Sub ProcessRequest(ByVal context As System.Web.HttpContext) Implements System.Web.IHttpHandler.ProcessRequest
''# the page contenttype is plain text'
HttpContext.Current.Response.ContentType = "text/plain"
''# store the querystring as a variable'
Dim qs As Nullable(Of Integer) = Integer.TryParse(HttpContext.Current.Request.QueryString("ID"), Nothing)
''# use the RegionsDataContext'
Using RegionDC As New DAL.RegionsDataContext
''# create a (q)uery variable'
Dim q As Object
''# if the querystring PID is not blank'
''# then we want to return results based on the PID'
If Not qs Is Nothing Then
''# that fit within the Parent ID'
q = (From r In RegionDC.bt_Regions _
Where r.PID = qs _
Select r.Region).ToArray
''# now we loop through the array'
''# and write out the ressults'
For Each item As DAL.bt_Region In q
HttpContext.Current.Response.Write(item.Region & vbCrLf)
Next
End If
End Using
End Sub
HERE’S THE ERROR
Public member ‘Region’ on type
‘String’ not found. Description: An
unhandled exception occurred during
the execution of the current web
request. Please review the stack trace
for more information about the error
and where it originated in the code.Exception Details:
System.MissingMemberException: Public
member ‘Region’ on type ‘String’ not
found.Source Error:
Line 33: ‘ and
write out the ressults Line 34:
For Each item In q Line 35:
HttpContext.Current.Response.Write(item.Region
& vbCrLf) Line 36:
Next Line 37:Source File:
E:\Projects\businesstrader\App_Code\Handlers\RegionsAutoComplete.vb
Line: 35Stack Trace:
[MissingMemberException: Public member
‘Region’ on type ‘String’ not found.]
Microsoft.VisualBasic.CompilerServices.Container.GetMembers(String&
MemberName, Boolean ReportErrors)
+509081 Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object
Instance, Type Type, String
MemberName, Object[] Arguments,
String[] ArgumentNames, Type[]
TypeArguments, Boolean[] CopyBack)
+222 BT.Handlers.RegionsAutoComplete.ProcessRequest(HttpContext
context) in
E:\Projects\businesstrader\App_Code\Handlers\RegionsAutoComplete.vb:35
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
+181 System.Web.HttpApplication.ExecuteStep(IExecutionStep
step, Boolean& completedSynchronously)
+75
Can anyone tell me what I’m doing wrong?
The error message is saying that the objects stored in the
bt_Regionsproperty are of typeStringand so they don’t have the memberRegionwhich you’re trying to access.I would double-check what is the type of
DAL.bt_Regions– it looks like you’re assuming that it returns some class, but it seems to be returning a collection of strings (perhaps just region names?). To see what it contains, you can modify the code like this:I would also try adding the Option Strict On option (if possible), which would instruct the compiler to check this kind of errors at compile-time.