2016-11-30 69 views
-1

我对我的代码中的某些东西感到困惑,希望有人能够在这里找到我。在C代码中检查文本框的代码值#

我想检查一下,看看我的用户是否在将数据写入记录之前填充了文本框,以便我使用以下代码检查文本框是否已填充。但是这个“总是”回归为真,并且就像用户已经放置了文本一样,即使没有文本。

if (ReasonTextBox.Text.ToString() != null) 
    { 
    //Some commands to write data to a table 
    } 
else 
    { 
    //Some alternative things to do 
    } 

我也做了这个没有“.ToString()”的结果相同。正如我在文本框中使用或不使用文本进行调试时所看到的,代码无论如何都会进入该过程。

Soooooo ...因为我在C#中编写网站相当新,我必须在这里丢失一些东西,显然空白文本框不是真的是空的?如果是这样的话,你会如何建议我去检查它是否被填充?

+1

尝试使用类似'if(string.IsNullOrEmpty(string))' – ThePerplexedOne

回答

0

Text属性不为空,它包含一个空字符串。

尝试,而不是:

if (!string.IsNullOrWhiteSpace(ReasonTextBox.Text)) { 
    // do something 
} 

如果Text已经无效,你会调用它的ToString()方法时,都得到了NullReferenceException

0

TextTextBox的财产是string,afaik从不是null。 (否则在致电ToString()时,您会得到NullReferenceException)。

ToString()的呼叫已过时,因为Text已经是string

你不想检查,如果Textnull但如果它是

if (!string.IsNullOrEmpty(ReasonTextBox.Text)) 

,或者包含字符串只有空格是一个错误的输入过:

if (!string.IsNullOrWhiteSpace(ReasonTextBox.Text)) 
0

好在开始之前要结束这一点。对于任何碰到这种情况的人来说,让我解释一下我发现的背景以及我如何解决这个问题。

除了asp:TextBox,我还在文本框的顶部使用了ajaxToolkit:HtmlEditorExtender。现在我不确定,也没有时间回去验证,但是我非常怀疑问题在于扩展程序在文本框中添加了我发现的

当然是不可见的呈现页面的颈眼,直到我建立我的存储过程来解决问题,并写入数据到表,并看到
(我认为这将是空白或空),我意识到发生了什么事情。因此,我所做的只是在此之后编写了一个辅助检查,以检查文本框中的
值,以及'只有
'避免写入。这解决了这个问题。有点像惠普计算器解决方案,但效果很好!