Используйте IF() Null Coalesce в параметрах SQL
Я пытаюсь использовать оператор If() для объединения значений в параметре SQL, но у меня возникли проблемы с этим.
Dim First as String = Nothing
First = FirstName.Text
Using conn As New SqlConnection()
'Code omitted
.AddWithValue("@FirstName", If(First, DBNull.Value))
По сути, если First = Nothing, параметр должен быть отформатирован следующим образом:
.AddWithValue("@FirstName", DBNull.Value)
Если FirstName.Text нет Nothing
или же Null
тогда это будет в основном как:
.AddWithValue("@FirstName", First)
У кого-нибудь есть указатели или есть предложения?
Я понимаю, что во-первых, имеет значение ""
Я просто не уверен, как программировать вокруг этого. Вот почему я пытался = Nothing
,
Это в настоящее время пишется как:
If employeeName <> "last,first" Then
cmd.Parameters.AddWithValue("@EMPL_NM", employeeName)
Else
cmd.Parameters.AddWithValue("@EMPL_NM", DBNull.Value)
End If
Который я пытаюсь свести к
.AddWithValue("@FirstName", If(First, DBNull.Value))
1 ответ
Решение
DBNull.Value
а также String
разные типы. Нуль-объединяющему оператору это не нравится.
Вы могли бы бросить его Object
чтобы компилировать, хотя я бы предпочел ваш If-Else
:
cmd.Parameters.AddWithValue("@FirstName", If(First, DirectCast(DBNull.Value, Object)))