2011-02-06 38 views
0

我已經使用c#和web服務創建了一個聯繫表單。如果用戶未填寫姓名或姓名是數字,我希望收到警告消息。這是我的C#代碼:如何糾正我的空例外?

public partial class Default2 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    protected void Button1_Click(object sender, EventArgs e) 
    { 
     Validation.WebService validate = new Validation.WebService(); 
     bool ismail = validate.isEmail(TextBox2.Text); 
     if (!ismail) 
      { Label1.Text = "your mail is wrong!!"; } 

     Validation.nameVal valid = new Validation.nameVal(); 
     bool isname = valid.isName(TextBox1.Text); 
     if (!isname) 
     { Label2.Text = "Your name is wrong!!"; } 

     else if (isname==null) 
     { Label2.Text = "Please fill in your name"; } 

     if (isname && ismail) 
     { 
      { Label1.Text = null; Label2.Text = null; 
      Label3.Text = "Your message has been send!";} 
      } 
     } 
} 

使用此代碼,我有一個空例外。

+0

你從哪裏得到空指針異常? – Gabe 2011-02-06 23:10:30

+0

你在哪裏有一個空指針異常? – ChrisF 2011-02-06 23:10:48

回答

1

試着改變代碼的最後一位,您可以設置Label1.TextLabel2.Text爲空,以:

Label1.Text = String.Empty; Label2.Text = String.Empty; 
2

從您的評論的例外是上線:

bool isname = valid.isName(TextBox1.Text); 

然後要麼validTextBox1爲空。鑑於之前的行是:

Validation.nameVal valid = new Validation.nameVal(); 

這指向它是後者。

您需要檢查TextBox1在解除引用之前是否爲空或確保它已正確初始化。

1

我猜測可能驗證失敗,或者可能將標籤文本設置爲null導致問題。下面的代碼應該有幫助

Validation.WebService validate = new Validation.WebService(); 
    bool ismail = (!string.IsNullOrEmpty(Textbox2.Text)) && validate.isEmail(TextBox2.Text); 
    if (!ismail) 
    { 
     Label1.Text = "your mail is wrong!!"; 
    } 
    Validation.nameVal valid = new Validation.nameVal(); 

    bool isname = (!string.IsNullOrEmpty(Textbox1.Text)) && valid.isName(TextBox1.Text); 

    if (!isname) 
    { 
     Label2.Text = "Your name is wrong!!"; 
    } 
    else if (string.IsNullOrEmpty(Textbox1.Text)) 
    { 
     Label2.Text = "Please fill in your name"; 
    } 

    if (isname && ismail) 
    { 
     { 
      Label1.Text = ""; 
      Label2.Text = ""; 
      Label3.Text = "Your message has been send!"; 
     } 
    } 
}