2014-10-06 38 views
0

保存期間我的頁面上有一個空的TextBox,因爲它不是必需的,用戶決定不填寫它。ASP.NET C#空TextBox控件以空字符串保存到數據庫,我需要保存爲空

從我記得在VB.NET中,當我做到以下它將保存到數據庫爲NULL,但在C#中它似乎被保存爲一個空字符串。我使用實體框架6 DB首先

myobject.Phone = PhoneTextBox.Text 

難道我真的做的過程中保存所需的文本框的每一個非以下?

if (string.IsNullOrEmpty(txtPhone.Text)) 
    { 
     myobject.Phone = null; 
    } 
    else 
    { 
     myobject.Phone = PhoneTextBox.Text; 
    } 

,如果是這樣的話就縮短if語句或創建一個函數,照顧它,因爲使用文本框時,它會永遠是這樣的任何建議。

回答

0

如果PhoneTextBox.Text是一個空字符串,而不是null那麼,是的,你需要在需要的地方明確設置一個null值。您可以使用條件運算符將其縮短一點:

myobject.Phone = string.IsNullOrEmpty(PhoneTextBox.Text) ? null : PhoneTextBox.Text; 
0

您使用什麼方法存儲數據?實體框架或您自己的存儲過程或SQL插入?

如果您在滾動您自己的DAL,那麼您必須檢查string.IsEmpty,在這種情況下,您可以使用DBNull.Value作爲要傳遞的值。

+0

我使用EF DB頭 – JTunney 2014-10-06 01:11:02

2

你可以定義這個擴展成員:

public static class Extensions 
{ 
    public static string ToNullIfEmpty(this string @this) 
    { 
     return String.IsNullOrEmpty(@this) ? null : @this; 
    } 
} 

然後,你可以這樣做:

myobject.Phone = PhoneTextBox.Text.ToNullIfEmpty(); 
相關問題