我在做一个用户注册登陆的东西。当用户输入用户名和密码验证正确后就可看到自己的注册资料,这个已经实现了。为了防止用户直接在地址栏中输入地址去访问站点中的view.asjpx(它用来显示某个用户的个人资料),我在是否显示资料前,先判定session变量(session变量在登陆的时候创建)是否为空,若为空则提示用户先登陆或重定向到登陆页面去。正常来说,这样应该没错啊,但运行后则提示错误为:
未将对象引用设置到对象的实例。显示if(Session["sname"].ToString()!="")这一行错误。
不知道为什么,请大家帮个忙吧!!!
if(Session["sname"].ToString()!="")
{
string constr;
constr=ConfigurationSettings.AppSettings["ConnString"];
OleDbConnection con=new OleDbConnection(constr);
con.Open();
string str3="select * from reg where sname='"+Session["sname"]+"'";
OleDbCommand comm=new OleDbCommand(str3,con);
OleDbDataReader dr=comm.ExecuteReader();
if(dr.Read())
{
TextBox1.Text=dr["sname"].ToString();
TextBox4.Text=dr["age"].ToString();
TextBox5.Text=dr["email"].ToString();
TextBox6.Text=dr["oicq"].ToString();
TextBox7.Text=dr["intro"].ToString();
TextBox8.Text=dr["sid"].ToString();
Label11.Text=dr["sex"].ToString();
}
}
else
{
Response.Redirect("login.aspx");
}