我重寫使用看起來像這樣這麼久的INSERT語句和參數VB.Net IIf函數:中添加的SqlParameter
cmd.Parameters.AddWithValue("@Website", General.fnSQLNullValues(tWebsite.Text))
哪裏General.fnSQLNullValues是這樣的:
Public Shared Function fnSQLNullValues(ByVal sValue As Object, Optional ByVal Len As Integer = 999999) As Object
If sValue Is Nothing Then Return DBNull.Value
fnSQLNullValues = IIf(sValue.ToString.Length = 0, DBNull.Value, Left(sValue.ToString(), Len))
End Function
我不t等這樣可言的,這似乎是很多的代碼都採取同樣的措施,
cmd.Parameters.AddWithValue("@Website" , If(tWebsite.Text , DBNull.Value))
從我的理解,即一行代碼有DBNull.Value將取代tWebsite.Text的值,如果tWebsite.Text爲空或不接受,在我看來,做同樣的事情,在一般的其他功能。這是正確的,是另一種方式比另一種更好嗎?
此外,我從第二種方式得到警告:「無法推斷普通類型;對象假設」,但在我看來,第一種方式反正是使用泛型對象,所以我不知道是否應該忽略在代碼數據庫的參數時,此警告
請更新標題/問題/標記爲*這真的沒有任何關係與ADO/SQL *和一切與'Iff' VS'If'(合併)。 (但是,應該很有可能使用'null'而不是'DBNull.Value',它可以在涉及引用或可空類型的情況下「靜默地投射」到該類型。) – 2012-07-06 22:28:53