【问题标题】:.net dbnull.value sqlparameter where.net dbnull.value sql参数在哪里
【发布时间】:2015-07-30 10:16:15
【问题描述】:

我的 sql 查询有问题:

我想做类似的事情:

SELECT * FROM myTable WHERE [myBoolField] IS NULL

如果我运行这个查询,我有我的结果,

但我想使用参数,所以我添加:

SELECT * FROM myTable WHERE [myBitField] IS @myBitField

New SqlParameter("@myBitField", dbnull.value)

@myBoolField 出现错误

如果我传递一个像 true 或 false 这样的值,那就可以了(使用“= @myBitField”)

有人可以帮我吗?

谢谢

【问题讨论】:

    标签: .net dbnull sqlparameter


    【解决方案1】:

    您只能使用IS NULL 测试NULL。你不能使用参数,也没有任何意义。

    DBNull.Value 可用于在代码中插入或比较值,但不能用于WHERE 条件,因为 NULL 甚至不等于另一个 NULL。

    【讨论】:

    • 哦...好吧,但是 dbnull.value 是 NULL,所以很奇怪,不是吗?正如你所说,你可以将它用于插入例如
    • @Testman 使用参数时,通常会预先解析查询,并且参数不只是替换到字符串中。解析器将看到 IS @parameter 并说“不,这是不可接受的”,就是这样。
    猜你喜欢
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    相关资源
    最近更新 更多