c# – 不允许使用WHERE子句的SqlDependency查询.如何修改它才有
我使用以下查询设置了SqlDependency:
string sql = "SELECT dbo.Case.CMRID,dbo.Case.SolutionID,dbo.Case.CreateDT,dbo.Case.ModifyDT " + "FROM dbo.Case " + "WHERE dbo.Case.ModifyDT > @LastExecutionDateTime"; 执行此查询会导致OnChanged事件持续触发,其类型为Invalid和Source of Statement.我进一步研究后发现,当您的查询违反与索引视图规则相同的规则时会发生什么,因为这是此通知机制所基于的. 检查Special Considerations Using Query Notifications (ADO.NET)我没有看到任何违反此声明的规则. 将语句修改为 string sql = "SELECT dbo.Case.CMRID,dbo.Case.ModifyDT " + "FROM dbo.Case"; 工作正常吗? OnChanged事件仅在适当时触发,并且具有正确的类型集. 那么,我怎样才能返回自上次执行语句以来具有修改日期的记录? 解决方法
ModifyDT是什么类型的?
QN的ADO.Net参考不完整,完整列表位于Creating a Query for Notification的SQL参考中.后者还列出了以下内容:
另一个问题可能是在查询中发生从字符串到日期时间的转换,这可能被认为是非确定性的(这是ADO.Net和SQL规范列出的标准).请尝试使用类型化参数:WHERE ModifyDT> @lastDateTime并传入DateTime类型的参数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |