代码之家  ›  专栏  ›  技术社区  ›  Mark C.

在SQL参数中使用IF()Null联合

  •  1
  • Mark C.  · 技术社区  · 10 年前

    我试图使用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)
    

    有人有什么建议吗?

    我知道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 回复  |  直到 10 年前
        1
  •  1
  •   Tim Schmelter    10 年前

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

    你可以把它投给 Object 尽管我更喜欢你的 If-Else :

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