NHibernate和Sybase Case语句空检查

时间:2009-10-19 15:39:20

标签: asp.net

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

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

选择Case myValue    当null时                 0     其他                 1    结束为newValue 来自mytable

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

现在,当我将存储过程中的Case语句更改为 选择案例    当myValue为null时                 0     其他                 1    结束为newValue 来自mytable

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

1 个答案:

答案 0 :(得分:0)

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

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