我正在重写这个长 INSERT 语句和参数,它看起来像这样:
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
我根本不喜欢这个,而且似乎需要很多代码才能做到这一点,
cmd.Parameters.AddWithValue("@Website" , If(tWebsite.Text , DBNull.Value))
据我了解,如果 tWebsite.Text 为 null 或不被接受,那一行代码 DBNull.Value 将替换 tWebsite.Text 作为值,在我看来,它与一般的其他函数做同样的事情。这是正确的吗?一种方法比另一种更好吗?
另外,我从第二种方式收到警告:“无法推断通用类型;假定对象”,但在我看来,第一种方式无论如何都是使用通用对象,所以我不知道我是否应该忽略这个警告