我有一些代码尝试循环LINQ结果,但它似乎没有用。
这是代码
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
这里的错误
类型上的公共成员'Region' 找不到“字符串”。描述:一个 未处理的异常发生在 当前网络的执行 请求。请查看堆栈跟踪 有关错误的更多信息 它起源于代码。
异常详细信息: System.MissingMemberException:Public 'String'类型的成员'Region'不是 找到。
来源错误:
第33行:'和 写出结果第34行:
对于每个项目在q第35行:
HttpContext.Current.Response.Write(item.Region &安培; vbCrLf)第36行:
下一行37:源文件: E:\项目\ businesstrader \ App_Code文件\处理程序\ RegionsAutoComplete.vb 行:35
堆栈追踪:
[MissingMemberException:公共成员 未找到“String”类型的“Region”。 Microsoft.VisualBasic.CompilerServices.Container.GetMembers(字符串&安培; MemberName,布尔报告错误) +509081 Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object 实例,类型类型,字符串 MemberName,Object []参数, String [] ArgumentNames,Type [] TypeArguments,Boolean [] CopyBack) +222 BT.Handlers.RegionsAutoComplete.ProcessRequest(HttpContext 上下文) E:\项目\ businesstrader \ App_Code文件\处理程序\ RegionsAutoComplete.vb:35 System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +181 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步,布尔& completedSynchronously) 75
谁能告诉我我做错了什么?
答案 0 :(得分:2)
错误消息表明存储在bt_Regions
属性中的对象属于String
类型,因此他们没有您尝试访问的成员Region
。
我会仔细检查DAL.bt_Regions
的类型是什么 - 看起来你假设它返回了一些类,但它似乎返回了一个字符串集合(可能只是区域名称?)。要查看它包含的内容,您可以像这样修改代码:
HttpContext.Current.Response.Write(item & vbCrLf) // to print the string
我还会尝试添加Option Strict On选项(如果可能),这将指示编译器在编译时检查这种错误。