ASP.NET C#空的TextBox控件正在以空字符串的形式保存到数据库中,我需要保存为null

本文关键字:保存 数据库 null TextBox 空的 NET 控件 字符串 ASP | 更新日期: 2023-09-27 18:25:35

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

根据我在VB.NET中的记忆,当我执行以下操作时,它将以NULL形式保存到数据库中,但在C#中,它似乎是以空字符串形式保存的。我正在使用实体框架6 DB First

myobject.Phone = PhoneTextBox.Text

在保存过程中,我真的必须对每个非必需的文本框执行以下操作吗

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

如果是这种情况,任何关于缩短if语句或创建一个处理它的函数的建议,因为在使用textbox时总是这样。

ASP.NET C#空的TextBox控件正在以空字符串的形式保存到数据库中,我需要保存为null

您可以定义这个扩展成员:

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

然后你可以这样做:

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

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

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

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

若你们正在滚动你们自己的DAL,那个么你们必须检查字符串。IsEmpty,在这种情况下,您可以使用DBNull.Value作为要传递的值。