ASP.NET C#empty TextBox控件作为空字符串保存到数据库,我需要保存为null

时间:2014-10-06 00:29:00

标签: c# asp.net vb.net textbox

在保存期间,我的页面上有一个空的TextBox,因为它不是必需的,用户决定不填写它。

从我在VB.NET中记得的情况来看,当我执行以下操作时,它会将数据库保存为NULL,但在C#中它似乎保存为空字符串。我正在使用Entity Framework 6 DB First

myobject.Phone = PhoneTextBox.Text

在保存期间,我是否真的必须为每个不需要的文本框执行以下操作?

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

如果是这种情况的话,有关缩短if语句或创建一个处理它的函数的建议,因为在使用文本框时总会如此。

3 个答案:

答案 0 :(得分:2)

您可以定义此扩展成员:

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

然后你可以这样做:

myobject.Phone = PhoneTextBox.Text.ToNullIfEmpty();

答案 1 :(得分:0)

如果PhoneTextBox.Text是空字符串而不是null那么,是的,您需要在需要的地方明确设置null值。您可以使用条件运算符缩短它:

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

答案 2 :(得分:0)

您使用什么方法存储数据?实体框架或您自己的存储过程或sql插入?

如果要滚动自己的DAL,则必须检查string.IsEmpty,在这种情况下,您可以使用DBNull.Value作为要传递的值。