目前,每当我将字符串传递给db时,如果该字符串为空,那么我通过执行以下操作将该对象设置为NULL:
IIf(DescriptionTxt.Text.length > 0, DescriptionTxt.Text, DBNull.Value)
我正在考虑编写一个函数来减少这段代码的长度,并使其更加一致。
但是,我想知道,在.NET 3.5中是否有办法实现这一点?
答案 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,负无穷大或其他适合您情况的值,并更改您的应用程序代码以适应。避免在数据库中使用不必要的空值。