我有一页ASP.Net用于通过存储过程搜索数据库的应用程序。传递给存储生成的参数之一通过ControlParameter绑定绑定到文本框。
<asp:ControlParameter Name="EventDescription" Type="String" ControlID="ucTestLogSearch" PropertyName="EventDescription" />
文本被传递到SQLServer存储过程。
存储过程定义如下参数:
@event_descrip VARCHAR(200) = NULL,
(CONTAINS (le.event_descrip, @event_descrip) OR @event_descrip IS NULL)
我的问题是,如果文本框为空,则会出现以下异常:
空的全文谓词
根据我的经验,在WHERE子句中检查null应该足以防止此错误。
另外,当我在testdb服务器上运行而不是在开发服务器上运行时,我会得到异常。据我所知,服务器运行的是同一版本的SQL server。唯一的区别是测试服务器是集群的,而开发服务器不是集群的。
有人能解释一下为什么我会遇到这个错误,为什么它会发生在一台服务器上而不是另一台服务器上,或者我如何解决它?