【问题标题】:Use IF() Null Coalesce in SQL Parameters在 SQL 参数中使用 IF() Null Coalesce
【发布时间】:2014-03-21 20:15:28
【问题描述】:

我正在尝试使用 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 不是 NothingNull 那么它基本上是这样的:

.AddWithValue("@FirstName", First)

有人有什么指点或建议吗?

我知道 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))

【问题讨论】:

    标签: vb.net parameters null-coalescing-operator


    【解决方案1】:

    DBNull.ValueString 是不同的类型。空合并运算符不喜欢这样。

    您可以将其转换为 Object 以使其编译,尽管我更喜欢您的 If-Else

    cmd.Parameters.AddWithValue("@FirstName", If(First, DirectCast(DBNull.Value, Object)))
    

    【讨论】:

    • 该死的。我认为这与此有关。谢谢!你觉得If/Else效率更高吗?
    • @Newbie:效率不高,但很清晰,还可以编写额外的代码,例如,如果你想处理FirstNothing 的情况(消息框、日志等)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 2013-12-02
    • 2013-08-11
    • 1970-01-01
    • 2011-11-20
    • 2021-02-12
    相关资源
    最近更新 更多