具有自定义查询功能的Kentico中继器

时间:2018-07-13 22:29:49

标签: kentico

好,我们开始。
使用Kentico 11 / Portal Engine(无修补程序)

有一个包含“仅内容”页面类型的表。重要的一个字段是日期和时间字段。

我试图从该表中获取与特定月份和年份条件匹配的行。例如,给我所有记录Month=2 and Year=2018。这些参数将通过查询字符串传递

我有一个自定义的存储过程,我想接收两个int(或字符串)参数,然后返回所有匹配行的集合。

enter image description here
我正在使用RepeaterWithCustomQuery来调用过程并处理结果行。如您所见,查询字符串参数分别命名为“ year”和“ monthnumber”。

enter image description here 查询

  

Me.PR.PREDetailSelect

  enter image description here   在此配置中设置我的Webpart时,出现以下错误:   enter image description here

  在我的查询中,我尝试过:

EXEC Proc_Custom_PRDetails @MonthNumber = ##ORDERBY##; @Year = ##WHERE##<br/>
EXEC Proc_Custom_PRDetails @MonthNumber = ##ORDERBY##, @Year = ##WHERE##<br/>
EXEC Proc_Custom_PRDetails @MonthNumber = ##ORDERBY## @Year = ##WHERE##<br/>

任何帮助将不胜感激(提前感谢Brendan)。最后,当我尝试更改名称以保护无辜者时,不要太着迷于特定对象的名称。

1 个答案:

答案 0 :(得分:0)

这些macros for queries不能与stor proc一起使用。如果您不传递任何内容,系统将生成此错误条件1 = 1,以免破坏如下所示的sql语句:

SELECT ##TOPN## ##COLUMNS##
FROM View_CMS_Tree_Joined AS V
INNER JOIN CONTENT_MenuItem AS C
ON V.DocumentForeignKeyValue = C.MenuItemID AND V.ClassName = N'CMS.MenuItem'
WHERE ##WHERE##
ORDER BY ##ORDERBY##

您需要将stor proc转换为SQL语句,然后才能使用这些 SQL宏或使用不带参数的stor proc

如果查看上面的查询 top where 不好,因为系统会进行调整,但是您可以使用 order by 和< em>列,但它们都必须存在(我认为它会原样通过它们):

exec proc_test ##ORDERBY##, ##COLUMNS##

老实说,我建议您不要这样做,而且通过调用stor proc不会带来太大收益。