这是我写的一个codebehind的后台代码,想把session中变量参数传给控件,可是得不到,不知是什么原因?请帮忙看一下!
login.aspx.vb
.....
Dim reader As SqlDataReader = myCmd.ExecuteReader
        myCmd.Dispose()       
   
    Dim obj As UserInfo = New UserInfo()
        

If reader.Read Then
            obj.UserId = reader.Item("UserID")
            obj.NiceName = reader.Item("NiceName")
            obj.UserName = reader.Item("UserName")
            obj.Tel = reader.Item("Tel")
            obj.EMail = reader.Item("EMail")
            obj.Addr = reader.Item("Addr")
            obj.Zip = reader.Item("Zip")
            obj.Role = reader.Item("Role")

         Session("UserInfo")=obj

 Session("UserId")=obj.UserId
 
     Session("NiceName")=obj.NiceName
 Session("UserName")=obj.UserName 
 Session("Tel")=obj.Tel 
 Session("EMail")=obj.EMail
 Session("Addr")=obj.Addr
 Session("Zip")=obj.Zip 
 Session("Role")=obj.Role
         
       End If
    myconn.Close()
.....SelfInfo.aspx.vb
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControlsPublic Class SelfInfo:inherits Page
Public lbNiceName As Label
Public lbTel As Label
Public lbEMail As Label
Public lbAddr As Label
Public  lbZip As Label
 Public lbUserName As Label
 Sub Page_Load(Sender As Object, E As EventArgs)
  If Session("UserInfo")="" Then 
    Response.Redirect("../CommonUser/BuyBook.aspx")   Else
   lbUserName.Text=CStr(Session("UserName")) 
   lbNiceName.Text=CStr(Session("NiceName")) 
   lbAddr.Text=CStr(Session("Addr")) 
   lbTel.Text=CStr(Session("Tel"))
   lbZip.Text=CStr(Session("Zip"))
   lbEMail.Text=CStr(Session("EMail"))
  
  End If
End Class换一种方式写也不行
Imports System
Imports System.Web
Imports System.Web.UI
Imports System.Web.UI.WebControlsPublic Class SelfInfo:inherits Page
Public lbNiceName As Label
Public lbTel As Label
Public lbEMail As Label
Public lbAddr As Label
Public  lbZip As Label
 Public lbUserName As Label
 Sub Page_Load(Sender As Object, E As EventArgs)
If Session("UserInfo") Is Nothing Then
            Response.Redirect("../CommonUser/BuyBook.aspx")
            Response.End()
        Else
            '读取Session中的用户信息,然后依次显示
            Dim obj As UserInfo = CType(Session("UserInfo"), UserInfo)
            lbUserName.Text = obj.UserName
            lbNiceName.Text = obj.NiceName
            lbAddr.Text = obj.Addr
            lbTel.Text = obj.Tel
            lbZip.Text = obj.Zip
            lbEMail.Text = obj.EMail
        End If
    End SubEnd Class
Public Class UserInfo
    Private _UserId As String
    Private _UserName As String
    Private _NiceName As String
    Private _Tel As String
    Private _Addr As String
    Private _EMail As String
    Private _Zip As String
    Private _Role As Integer
    Private _State As Integer    Public Property UserId() As String
        Get
            Return _UserId
        End Get
        Set(ByVal Value As String)
            _UserId = Value
        End Set
    End Property
    Public Property UserName() As String
        Get
            Return _UserName
        End Get
        Set(ByVal Value As String)
            _UserName = Value
        End Set
    End Property
    Public Property NiceName() As String
        Get
            Return _NiceName
        End Get
        Set(ByVal Value As String)
            _NiceName = Value
        End Set
    End Property
    Public Property Tel() As String
        Get
            Return _Tel
        End Get
        Set(ByVal Value As String)
            _Tel = Value
        End Set
    End Property    Public Property Addr() As String
        Get
            Return _Addr
        End Get
        Set(ByVal Value As String)
            _Addr = Value
        End Set
    End Property    Public Property EMail() As String
        Get
            Return _EMail
        End Get
        Set(ByVal Value As String)
            _EMail = Value
        End Set
    End Property    Public Property Zip() As String
        Get
            Return _Zip
        End Get
        Set(ByVal Value As String)
            _Zip = Value
        End Set
    End Property
    Public Property State() As Integer
        Get
            Return _State
        End Get
        Set(ByVal Value As Integer)
            _State = Value
        End Set
    End Property    Public Property Role() As Integer
        Get
            Return _Role
        End Get
        Set(ByVal Value As Integer)
            _Role = Value
        End Set
    End PropertyEnd Class

解决方案 »

  1.   

    在C#中应该是Session["UserInfo"].ToString()vb就不知道了....
      

  2.   

    虽然不是很会VB.NET...但是楼主的程序的开始的时候Dim reader As SqlDataReader = myCmd.ExecuteReader
            myCmd.Dispose()这样不对了吧..刚建立了readerz之后 myCmd就消亡了...那么还怎样读取得到数据啊.If reader.Read Then
                obj.UserId = reader.Item("UserID")
                obj.NiceName = reader.Item("NiceName")
                obj.UserName = reader.Item("UserName")
                obj.Tel = reader.Item("Tel")
                obj.EMail = reader.Item("EMail")
                obj.Addr = reader.Item("Addr")
                obj.Zip = reader.Item("Zip")
                obj.Role = reader.Item("Role")

             Session("UserInfo")=obj

     Session("UserId")=obj.UserId
     
         Session("NiceName")=obj.NiceName
     Session("UserName")=obj.UserName 
     Session("Tel")=obj.Tel 
     Session("EMail")=obj.EMail
     Session("Addr")=obj.Addr
     Session("Zip")=obj.Zip 
     Session("Role")=obj.Role
             
           End If这么一段应该是没有作为了...因为if的条件为falsh.....