2010-07-12 79 views
0

目前,每當我傳遞一個字符串的分貝,如果該字符串是空的,那麼我該對象設置爲NULL通過執行以下操作:.NET - 如果NULL對象分配的字符串長度爲0

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

我正在考慮編寫一個函數來減少這段代碼的長度,並使其更加一致。

但是,我想知道,在.NET 3.5中是否有這樣做的方法?

回答

1

你可以寫一個擴展方法。實際上,我知道大多數開發人員更喜歡區分NULL和空字符串。它們在.NET中是不同的,所以如果它們在數據庫中不同,它會更容易(並且一致)。

加入: OOPS剛注意到這是一個VB.NET問題。對不起,我的VB.NET有點生疏,但我相信你可以將上面的簡單函數翻譯成VB.NET。

+0

謝謝@ Vilx-。最後,我跟去: 公共共享功能NullIfEmpty(BYVAL值作爲字符串)作爲字符串返回 IIF(String.IsNullOrEmpty(價值)= FALSE,價值,DBNull.Value) 端功能 – Curt 2010-07-14 08:26:32

+1

@Curt - 正如他們所說 - 相同的區別! :) – 2010-07-14 09:25:00

0

如果你沒有在那裏放置一堆空值,你的數據庫將會更好,並且更容易查詢。我會堅持使用「」,0,-1,負無窮大或適合您的情況的其他值,並更改您的應用程序代碼以適應。避免數據庫中不必要的空值。在代碼

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

就用

DescriptionTxt.Text.AsNull() 

但除此之外,沒有什麼在.NET中,默認情況下做的:

+0

我的一些可選字段用於我的新聞報道,例如說明。當然,最好將空值存儲爲NULL,而不是空字符串?空間更小,更容易管理(就像我將能夠使用系統功能,如ISNULL)。 – Curt 2010-07-13 08:43:52

1

你已經有了最簡單的代碼。沒有任何3.5工具可以使這個更簡單。一個改進可能是您的代碼和@ Vilx代碼之間的合併:

IIf(String.IsNullOrEmpty(DescriptionTxt.Text), DBNull.Value, DescriptionTxt.Text) 
相關問題