0

なぜこのエラーがスローされたのかわかりません。コードは私には問題ないようですが、どこが間違っているのか誰でもわかりますか? データベースからユーザー名とパスワードを一致させようとしています。ありがとう

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
4

2 に答える 2

0

try catch を使用してください...「users」テーブルを取得していない可能性があります。Tables["Users"] の代わりに Tables[0] を使用してください。ブレークポイントを使用します。多くの方法があります。どれか試してみてください

于 2013-04-25T17:55:42.927 に答える
0

ここにすべての可能性があります:

  1. loginservice がヌル、または
  2. myData が null である、または
  3. myData.Tables には「Users」という名前のテーブルが含まれていないため、null を返すか、または
  4. ユーザー テーブルの行に「ユーザー名」という名前の列が含まれていない、または
  5. ユーザー テーブルの行に「パスワード」という名前の列が含まれていない

どれ?-エラー行番号をソース コードと一致させるだけです。

行 22 が実際にエラー コール スタックで言及されている行 22 である場合、「null」オブジェクトは myData または myData.Tables["Users"] である必要があります。

于 2013-04-25T17:56:38.800 に答える