.NET - 如果指定的字符串长度为0,则为NULL对象

时间:2010-07-12 16:05:30

标签: vb.net string null asp.net-3.5

目前,每当我将字符串传递给db时,如果该字符串为空,那么我通过执行以下操作将该对象设置为NULL:

IIf(DescriptionTxt.Text.length > 0, DescriptionTxt.Text, DBNull.Value)

我正在考虑编写一个函数来减少这段代码的长度,并使其更加一致。

但是,我想知道,在.NET 3.5中是否有办法实现这一点?

3 个答案:

答案 0 :(得分:1)

你可以写一个扩展方法:

public static object AsNull(this string me)
{
    if (string.IsNullOrEmpty(me))
        return DBNull.Value;
    return me;
}

然后在代码中使用

DescriptionTxt.Text.AsNull()

但是否则.NET中没有任何内容可以默认执行。事实上,我所知道的大多数开发人员更喜欢区分NULL和空字符串。它们在.NET中是不同的,因此如果它们在数据库中也不同,那么它会更容易(并且一致)。

已添加: OOps刚刚注意到这是一个VB.NET问题。对不起,我的VB.NET有点生疏,但我相信你能将上面的简单函数翻译成VB.NET。

答案 1 :(得分:1)

你几乎已经有了最简单的代码。没有任何3.5工具可以使这更简单。细化可能是您的代码与@Vilx-代码之间的合并:

IIf(String.IsNullOrEmpty(DescriptionTxt.Text), DBNull.Value, DescriptionTxt.Text) 

答案 2 :(得分:0)

如果你没有放入一堆空值,你的数据库将表现得更好并且更容易正确查询。我会坚持使用“”,0,-1,负无穷大或其他适合您情况的值,并更改您的应用程序代码以适应。避免在数据库中使用不必要的空值。