string NewConn = Server.MapPath("DataBase.MDB");
            string ConnectionStr = "Data Source =" + NewConn + ";Mode = Share Deny None;Jet OLEDB:Engine Type = 5;Provider =Microsoft.Jet.OLEDB.4.0";
            OleDbConnection Conn = new OleDbConnection(ConnectionStr);
            string sql = "select * from Member where username ='" + (string)Session["user"] + "'";            OleDbDataAdapter Comm = new OleDbDataAdapter(sql, Conn);
            DataSet ds = new DataSet();
            Comm.Fill(ds, "Member");
            TextBox1.Text = ds.Tables[0].Rows[0]["username"].ToString();
            TextBox2.Text = ds.Tables[0].Rows[0]["sex"].ToString();
            TextBox3.Text = ds.Tables[0].Rows[0]["hobby"].ToString();
查询数据库里的内容,红色部分出错,不知道怎么拿到session的那个值~请各位指教啊~

解决方案 »

  1.   

    Session["user"]中如果取得的值为null,你强制性转化就会报错,所以在转化的时候最好判断session 的值是否存在还有一种情况就是:如果是在一般处理程序中要得到session 对象必须实现这个接口IRequiresSessionState,否则不能得到session对象
    自然也不能得到值
      

  2.   

    Session["user"] 是否设置
    Session["user"]="";
    string sql = "select * from Member where username ='" + Session["user"]==null?"":Session["user"].ToString() + "'";   
      

  3.   

    如果未启用会话状态,则无法设置或获取会话状态值。若要为应用程序配置会话状态设置,请在 Web.config 文件中设置 sessionState 元素的 mode 属性。启用会话状态后,如果请求一个会话状态变量中不存在的值,则会返回 nullNothingnullptrnull 引用.
    会话状态可能会过期(默认情况下,在处于不活动状态 20 分钟后过期),而在其中存储的信息可能会丢失。可以使用 sessionState 配置节的 timeout 属性控制会话状态生存期。 
      

  4.   

    读取会话状态中的值
    string sql = "select * from Member where username ='" + (string)(Session["user"]) + "'";