Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用多视图的代码在使用向导ASP.NET时失败_Asp.net_Vb.net_Linq_Wizard_Multiview - Fatal编程技术网

使用多视图的代码在使用向导ASP.NET时失败

使用多视图的代码在使用向导ASP.NET时失败,asp.net,vb.net,linq,wizard,multiview,Asp.net,Vb.net,Linq,Wizard,Multiview,我最初创建了一个过程,该过程是通过在多视图中的视图之间进行转换来实现的,并且运行良好。现在,我已经将相同的代码移动到ASP.NET向导中,它在第二步不断抛出错误。错误是: 方法“System.Object和Object(System.Object,System.Object)”不支持转换为SQL。 您知道为什么在将代码移动到向导中时会出现这种情况吗?我敢肯定这有点愚蠢,但我现在已经检查了3-4次代码,它在操作上看起来完全相同。 代码如下: '确保.NET Framework的LDAP部分可用。

我最初创建了一个过程,该过程是通过在多视图中的视图之间进行转换来实现的,并且运行良好。现在,我已经将相同的代码移动到ASP.NET向导中,它在第二步不断抛出错误。错误是: 方法“System.Object和Object(System.Object,System.Object)”不支持转换为SQL。 您知道为什么在将代码移动到向导中时会出现这种情况吗?我敢肯定这有点愚蠢,但我现在已经检查了3-4次代码,它在操作上看起来完全相同。 代码如下: '确保.NET Framework的LDAP部分可用。 Imports System.DirectoryServices’允许我们与LDAP接口。 Imports System.Data.Linq.SqlClient'允许我们使用Linq SQL方法

部分公共类buildit 继承System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    ' ******* Grab the LDAP info. for current user.
    Dim ID As FormsIdentity = DirectCast(User.Identity, FormsIdentity)
    Dim ticket As FormsAuthenticationTicket = ID.Ticket
    Dim adDirectory As New DirectoryEntry("LDAP://OU=[info],DC=[info],DC=[info],DC=[info]")
    ' We need to strip off @email.address from the ticket name, so we'll use substring to grab the first 
    ' five characters.
    Dim adTicketID As String = ticket.Name.Substring(0, 5)
    Dim adEmployeeID As String
    adEmployeeID = adDirectory.Children.Find("CN=" & adTicketID).Properties("employeeID").Value

    ' ******* Lets make sure they have signed the housing contract and the community covenant.
    Dim dbContractSigs As New pcRoomOccupantsDataContext
    Dim pcContractSigs = From p In dbContractSigs.webContractSigs _
                         Where p.people_id = adEmployeeID _
                         Select p.res_contract, p.comm_life
    If pcContractSigs.Count.Equals(0) Then
        Response.Redirect("signcontract.aspx")
    Else
        Dim cs As String = pcContractSigs.First.res_contract.ToString
        Dim cos As String = pcContractSigs.First.comm_life.ToString
        If cs = "Y" And cos = "Y" Then
            ' We don't need to do anything.
            ' We use the else statement b/c there are multiple conditions that could occur besides "N"
            ' that would cause us to redirect to the signature page, whereas there is only one valid response - "Y".
        Else
            ' Redirect the individual to our contracts page.
            Response.Redirect("signcontract.aspx")
        End If
    End If

    ' ******* Now lets find out what gender that individual is.
    Dim dbIndividual As New pcPeopleDataContext
    Dim pcIndividual = From p In dbIndividual.PEOPLEs _
                       Join d In dbIndividual.DEMOGRAPHICs On p.PEOPLE_CODE_ID Equals d.PEOPLE_CODE_ID _
                       Where p.PEOPLE_ID = adEmployeeID _
                       Select p, d
    ' Make a session variable that will carry with the user throughout the session delineating gender.
    Session("sgender") = pcIndividual.First.d.GENDER.ToString
    ' Debug Code.
    ' Put a stop at end sub to get these values.
    ' Response.Write(adEmployeeID)

End Sub
Sub LinqDataSource1_Selecting(ByVal sender As Object, ByVal e As LinqDataSourceSelectEventArgs)
    ' Lets get a list of the dorms that are available for user's gender.
    Dim pcDorms As New pcDormsDataContext
    Dim selectedDorms = (From sd In pcDorms.PBU_WEB_DORMs _
                    Where IIf(Session("sgender").ToString = "M", sd.description = "Male", sd.description = "Female") _
                    Select sd.dorm_building).Distinct()
    e.Result = selectedDorms
End Sub
Public Sub Button_ItemCommand(ByVal Sender As Object, ByVal e As RepeaterCommandEventArgs)
    ' ******** Lets pass on the results of our query in LinqDataSource1_Selecting.
    Session("sdorm") = RTrim(e.CommandName)

    ' ******** Debug code.
    ' Response.Write(sDorm)
End Sub
Sub LinqDataSource2_Selecting(ByVal sender As Object, ByVal e As LinqDataSourceSelectEventArgs)
    ' ******** Get a list of rooms available in the dorm for user's gender.
    Dim pcDorms As New pcDormsDataContext
    Dim selectedDorm = (From sd In pcDorms.PBU_WEB_DORMs _
                        Where IIf(Session("sgender").ToString = "M", sd.description = "Male", sd.description = "Female") _
                        And sd.dorm_building = CStr(Session("sdorm")) _
                        Select sd.dorm_room)
    e.Result = selectedDorm
End Sub
Public Sub Button2_ItemCommand(ByVal Sender As Object, ByVal e As RepeaterCommandEventArgs)
    ' ******** Lets pass on the results of our query in LinqDataSource2_Selecting.
    Session("sroom") = RTrim(e.CommandName)
End Sub
Sub LinqDataSource3_Selecting(ByVal sender As Object, ByVal e As LinqDataSourceSelectEventArgs)
    ' ******** Grabs the individuals currently listed as residing in this room and displays them. Note the use of SqlMethods.Like 
    ' for dorm_building, this is due to legacy issues where dorms sometimes have leading or trailing blank spaces. We could have 
    ' also used Trim.
    Dim pcOccupants As New pcRoomOccupantsDataContext
    Dim roomOccupants = (From ro In pcOccupants.webResidents _
                       Where SqlMethods.Like(ro.dorm_building, "%" & CStr(Session("sdorm")) & "%") _
                        And ro.dorm_room = CStr(Session("sroom")) _
                      Select ro.person_name)
    e.Result = roomOccupants

    ' ******** Debug code.
    'Response.Write(CStr(Session("sdorm")))
    'Response.Write(CStr(Session("sroom")))
End Sub
Protected Sub Button4_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button4.Click
    ' ******** Reserve the room for a student.
End Sub

结束类

看不到代码就说不出来;有一个LINQ查询从数据库中提取一些信息,这导致了一个错误。但是,如果不看代码,就无法告诉您任何事情。

我的旧代码如下所示:

Dim selectedDorm = (From sd In pcDorms.PBU_WEB_DORMs _
                            Where IIf(Session("sgender").ToString = "M", sd.description = "Male", sd.description = "Female") _
                            And sd.dorm_building = Session("sdorm").ToString _
                            Select sd.dorm_room)
并且不起作用(但在使用多视图时确实起作用)。我把它改成这样:

Dim selectedDorm = (From sd In pcDorms.PBU_WEB_DORMs _
                            Where IIf(Session("sgender").ToString = "M", sd.description = "Male", sd.description = "Female") _
                            Where sd.dorm_building = Session("sdorm").ToString _
                            Select sd.dorm_room)
现在它开始工作了