2011-02-06 40 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!"; 
     } 
    } 
}