この長い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の1行のコードがtWebsite.Textを値として置き換え、一般的な他の関数と同じことを行うように見えます。これは正しく、一方が他方よりも優れていますか?
また、2番目の方法から「共通型を推測できません;オブジェクトが想定されます」という警告が表示されますが、最初の方法はとにかくジェネリックオブジェクトを使用していたようですので、この警告を無視する必要があるかどうかわかりません