2012-04-08 16 views
1

我曾经有过这方面的工作是这样....asp.net vb.net为什么这个IF不工作?

Dim AnnEnt As Label = FormView1.FindControl("Holiday_RemainingLabel") 

    txtNoofDays.Text.ToString() 
    AnnEnt.Text.ToString() 

    If txtNoofDays.Text >= AnnEnt.Text Then 

     lblHolRequestResponse.Text = "Your holiday could not be saved" 
    Else 

我最近改成这样,它不再起作用

Dim remain As TextBox = FormView1.FindControl("Holiday_RemainingTextBox") 



    txtNoofDays.Text.ToString() 
    remain.Text.ToString() 

    If txtNoofDays.Text >= remain.Text Then 

     lblHolRequestResponse.Text = "Your holiday could not be saved" 

    Else 

是什么在文本框中的区别formview和标签在formview中,以防止这种工作?

因为我已经试过......

Dim days = txtNoofDays.Text 

    days.ToString() 
    AnnEnt.Text.ToString() 
    remain.Text.ToString() 
    If remain.Text.ToString < days.ToString Then 
     lblHolRequestResponse.Text = "Your holiday could not be saved" 
+2

我不明白你的代码。 'txtNoofDays.Text.ToString()'基本上什么都不做,因为字符串没有分配给任何东西。 'txtNoofDays.Text> = remain.Text'将按字母顺序比较两个字符串(根据排序顺序)。你确定你想这么做吗? – 2012-04-08 21:48:49

+0

他们都是数字。我只是想让它比较数字2和数字1. ..如果数字1比数字2高,然后显示消息。我尝试了几种不同的方式,但似乎没有工作 – user1055487 2012-04-08 21:52:10

+0

不工作如何?空引用错误,因为它找不到名为“保留”的文本框? NoOfDays看起来对我来说可能是一个数字,当您比较字符串“2”>“10”时... – 2012-04-08 21:53:18

回答

3

如果要比较字符串的数字,将它们转换成数字。

例如(asssuming他们ints):

Dim remain As TextBox = FormView1.FindControl("Holiday_RemainingTextBox") 
Dim remaining = Int32.Parse(remain.Text) 
Dim numOfDays = Int32.Parse(txtNoofDays.Text) 

If numOfDays >= remaining Then 
    lblHolRequestResponse.Text = "Your holiday could not be saved" 
End If 

Int32.Parse Method

否则你按字母顺序进行比较。

String.CompareTo Method

+0

+1;此外,“你的假期无法保存” - 糟糕的假期! – dash 2012-04-08 22:00:33