2016-11-30 64 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。現在我不確定,也沒有時間回去驗證,但是我非常懷疑問題在於擴展程序在文本框中添加了我發現的

當然是不可見的呈現頁面的頸眼,直到我建立我的存儲過程來解決問題,並寫入數據到表,並看到
(我認爲這將是空白或空),我意識到發生了什麼事情。因此,我所做的只是在此之後編寫了一個輔助檢查,以檢查文本框中的
值,以及'只有
'避免寫入。這解決了這個問題。有點像惠普計算器解決方案,但效果很好!