日期:2014-05-17  浏览次数:20580 次

急!各位高手帮帮忙啊!“未将对象引用设置到对象的实例。”
这是我login界面的代码:public partial class login1 : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {

  }
  protected void Button1_Click(object sender, EventArgs e)
  {
  if (TextBox1.Text == "")
  {
  Session["username"] = TextBox1.Text;
  Server.Transfer("Default2.aspx");
  }
  else
  {
   

  }
  }
}
这是我登陆后跳转到Default2.aspx这个界面的代码:
ublic partial class Default2 : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
  if (Application["chat"] == null && Session["username"].ToString() == null)
  {
  Application["chat"] = Session["username"].ToString() + "进入了聊天室.......<br>";
  }
  else
  {
  Application["chat"] = Session["username"].ToString() + "进入了聊天室.......<br>" + Application["chat"];
  }
  }
}
我做的是一个聊天室(在线交流),在login输入用户名以后就跳转到Default2界面,但是每次调试的时候在login输入用户名点击“进入”按钮时,就会出现“未将对象引用设置到对象的实例。”而出错的一行代码是:if (Application["chat"] == null && Session["username"].ToString() == null)。急!各位高手帮帮忙啊!

------解决方案--------------------
C# code

--改为
if (TextBox1.Text != "")
--Session["username"]为空,因此报错
Session["username"].ToString()

------解决方案--------------------
Session["username"].ToString()这个肯定可能有问题的啊。
起码不能直接toString()一旦Session为空,绝对是“未将对象引用到对象的实例”啊。


回复2楼,我照你的方法做了后,又出现了新问题:
 Application["chat"] = Session["username"].ToString() + "进入了聊天室.......<br>";
这行出的差错是“未将对象引用设置到对象的实例。”这行是Default2.aspx这个界面的代码。

明显也说明了这个问题
------解决方案--------------------
if (Application["chat"] == null && Session["username"].ToString() == null)
你要做的是让用户进来看到是谁进入了聊天室吧?那肯定要确定用户不为空而不是为空吧??
所以
if (Application["chat"] == null && Session["username"]!= null)这个逻辑才对。。。
然后else的地方也要改下子