在子页面中访问母版页会话
Posted
技术标签:
【中文标题】在子页面中访问母版页会话【英文标题】: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
但我无法使用此代码在子页面中使用会话。我可以得到任何帮助吗??
【问题讨论】:
【参考方案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 + "'" 如果有用,请不要忘记接受答案(单击向下箭头下方的复选标记)以上是关于在子页面中访问母版页会话的主要内容,如果未能解决你的问题,请参考以下文章