【问题标题】:NHibernate and Sybase Case Statement null checkNHibernate 和 Sybase Case 语句空值检查
【发布时间】:2009-10-20 05:30:01
【问题描述】:

我有表“mytable”,其中列“myValue”的值为空。

我有 NHibernate 调用 Sybase 存储过程的应用程序。 在程序中,我有 Case 语句,我在其中检查值是否为 null。

选择案例 myValue 当为空时 0 别的 1 以 newValue 结尾 来自我的表

当我在数据库工具中执行此过程时,我得到的输出为 0。 当我运行我的应用程序时,NHibernate 会执行此过程并输出 1。

现在,当我将存储过程中的案例语句更改为 选择案例 当 myValue 为空时 0 别的 1 以 newValue 结尾 来自我的表

现在,当我运行我的应用程序时,Nhibernate 会执行此过程并输出 0。 看起来在存储过程中更改 SQL 对 NHibernate 很重要。

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    我们想通了,它根本不是 NHibernate..

    我们的(新式)数据库驱动程序不支持“case null:”、“@var != null”或“@var = null”,我们必须使用“@var is not null”、“@var为空”,或者在我们的 sql 前加上 'SET ANSINULL OFF”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-09-27
      相关资源
      最近更新 更多