【问题标题】:accessing master page session in child pages在子页面中访问母版页会话
【发布时间】:2021-09-16 09:21:29
【问题描述】:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 处理 Me.Load

    lblSTuName.Text = "Welcome! " + Session("StuID")
    If con.State = ConnectionState.Closed Then
        con.Open()
    End If
    cmd = New OleDbCommand
    cmd.Connection = con
    cmd.CommandText = "select [Image] from tblStudent where Uname='" + Session("StuID") + "'"
    Dim dr As OleDbDataReader
    dr = cmd.ExecuteReader()
    If dr.Read() Then
        stuImage.ImageUrl = dr("Image")
    Else
        stuImage.ImageUrl = Nothing
    End If
    con.Close()
End Sub

我在 student.master 页面中有这段代码

然后我希望会话(“StuID”)也可以在 chlid 页面中使用....我在子页面 student.aspx 中编写了以下代码-

If Not IsPostBack Then

        Dim stname As Label = TryCast(Master.FindControl("lblSTuName"), Label)
        stuN = stname.Text
        If con.State = ConnectionState.Closed Then
            con.Open()
        End If
        cmd = New OleDbCommand
        cmd.Connection = con
        cmd.CommandText = "select [RollNo],[CourceName] from tblStudent where StuName='" + stuN + "'"
        dr = cmd.ExecuteReader()
        If dr.Read() Then
            MsgBox("read complete")

        Else
            MsgBox("not success!")
        End If
    End If

但我无法使用此代码在子页面中使用会话。我可以得到任何帮助吗??

【问题讨论】:

    标签: asp.net vb.net session master-pages sql-sessions


    【解决方案1】:

    每个用户只有一个会话对象。您可以从任何页面访问此数据。尝试直接使用会话中的学生姓名。您不需要任何母版页

           .....
           Dim stuN =  Session("StuID");
            If con.State = ConnectionState.Closed Then
                con.Open()
            End If
            cmd = New OleDbCommand
            cmd.Connection = con
            cmd.CommandText = "select [RollNo],[CourceName] from tblStudent where StuName='" + stuN + "'"
           // or better to try
          cmd.CommandText = "select [RollNo],[CourceName] from tblStudent where Uname='" + stuN + "'"
           ......
    

    【讨论】:

    • Hyi,,,,,现在我又遇到了错误。正在显示带有“不成功”消息的消息框。我添加了以下代码行-
    • Hyi,,,,,现在我又遇到错误了。正在显示消息“不成功”的消息框。我添加了以下代码行- Dim stuN As String = Session("StuID")
    • 您是否尝试过 "select [RollNo],[CourceName] from tblStudent where Uname='" + stuN + "'"
    • 如果有用,请不要忘记接受答案(单击向下箭头下方的复选标记)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多