UniversalViewerWithCustomQuery Where子句使用QueryString参数

时间:2018-07-06 21:22:07

标签: kentico

我想使用页面URL中的查询字符串参数使用UniversalViewerWithCustomQuery Webpart加载页面:

带有查询字符串参数的页面URL: mysite \ home \ mypage.aspx?id = 3

到目前为止我尝试过的内容查询:

  

SELECT MyTable中的前1个ObjectID,Field1,Field2,其中ObjectID = {%   QueryString.id%}

获取错误:'%'附近的语法不正确。因此,我尝试了:

  

从MyTable中选择前1个ObjectID,Field1,Field2,其中## WHERE ##

内容过滤器Where子句:ObjectID = {%QueryString.id%}

获取错误:属性“ wherecondition”中的SQL查询无效。

我还尝试仅使用字符串{%'3'%}代替querystring参数,并得到相同的错误。我知道我做错了,但无法弄清楚是什么...

++++++++++++++++++++++++++++++++++++++++++++++++ ++

更新1

我使用数据库对象应用程序将所有SQL内容移到了自定义存储过程中。 哪里有一个如何从UniversalViewerWithCustomQuery调用存储过程的示例?

更新2

打电话给我,我想尝试使用常规的旧TSQL并成功:

  

EXEC Proc_Custom_MyProc_MyProc

但是当我尝试使用参数调用时,会得到与以前相同的错误!!!

  

EXEC Proc_Custom_MyProc_MyProc @id = {%'2'%}

2 个答案:

答案 0 :(得分:0)

输入宏时,是否使用输入框左侧的箭头进行输入?您的情况应如下所示:

ObjectId = {% QueryString.GetValue("id", 0) %}

答案 1 :(得分:0)

尝试使用以下查询语法:

  

从MyTable中选择## TOPN ## ## COLUMNS ##,其中## WHERE ##

从Web部件输入参数

  1. 选择顶部N:1
  2. 条件:ObjectID = {%QueryString.GetValue(“ id”,0)#%} [或{%id%}]
  3. 列:ObjectID,Field1,Field2