【问题标题】:Asp.net NullReferenceException: Object reference not set to an instance of an objectAsp.net NullReferenceException:对象引用未设置为对象的实例
【发布时间】:2013-04-19 17:37:59
【问题描述】:

我不明白为什么它会抛出这个错误。代码对我来说似乎很好,任何人都可以发现我哪里出错了?我正在尝试匹配数据库中的用户名和密码。谢谢

Line 20:         myData = loginservice.AdminGetUserTable();
Line 21: 
Line 22:         foreach (DataRow myRow in myData.Tables["Users"].Rows) 
Line 23:         {
Line 24:             if (txt_username.Text == myRow["Username"].ToString() && txt_password.Text == myRow["Password"].ToString())

错误:

[NullReferenceException: Object reference not set to an instance of an object.]
   Login.Button1_Click(Object sender, EventArgs e) in f:\.NetProject\WebSite\Login.aspx.cs:22
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9553178
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +35
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724

【问题讨论】:

  • 你永远不会验证 myData 实际上包含任何东西......
  • @RichardBrown 我如何验证这一点?我还是个初学者

标签: asp.net visual-studio-2010 ms-access login nullreferenceexception


【解决方案1】:

这里有所有可能性:

  1. loginservice 为空,或
  2. myData 为空,或
  3. myData.Tables 不包含名为“Users”的表,因此它返回 null,或者
  4. Users 表中的行不包含名为“Username”的列,或者
  5. Users 表中的行不包含名为“Password”的列

哪一个? - 只需将错误行号与您的源代码匹配即可。

如果你的第 22 行确实是错误调用堆栈中提到的第 22 行,那么“null”对象必须是 myData 或 myData.Tables["Users"]

【讨论】:

  • 我已经检查过了,你提到的一切都是正确的:(。它是上面代码中的第 22 行
  • 对不起 - 我错过了你有行号的事实。根据我的回复,您提供的信息必须是 2. 或 3.。我编辑了我的答案以指出这两种可能性。你能打破那条线上的调试器吗?您对 myData.Tables["Users"] 有什么看法?
【解决方案2】:

使用 try catch...可能是您没有得到“用户”表。使用 Tables[0] 而不是 Tables["Users"]。 使用断点。有很多方法。尝试任何一个

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 2016-06-05
    • 1970-01-01
    • 1970-01-01
    • 2014-07-21
    • 2020-11-17
    相关资源
    最近更新 更多