我在ASP页面上有以下代码:
<%
QueryToJSON(conn, "execute WebGetEmployeesPlanned'"
+Request.QueryString("customercode")+"',
'"+Request.QueryString("lang")+"',
'"+Request.QueryString("date")+"'").flush
%>
此页面上没有其他代码,除了一些包含,因为我使用$ .getJSON()
从另一个页面调用此页面的ajax问题在于我不知道如何将NULL作为参数之一发送给SP。
有时Request.QueryString(“customercode”)将为空。我需要知道如何将其放在上面的代码中,以使SP将此参数视为NULL。
我可以访问SP代码,因此我可以更改该方面的内容以将空字符串转换为null。
提前致谢。
答案 0 :(得分:1)
你走在正确的轨道上。查询字符串参数只是字符串。因此,您必须为NULL选择一个字符串代表,这不会与您要发送的任何实际字符串值冲突。你可以使用空字符串,“null”或“Thomas的特殊空标志”;没关系。查询字符串参数中没有NULL的“官方”表示。
更新:不,我认为存储过程不是处理此转换的地方。原因是您要将查询字符串参数中的null的字符串表示形式转换为“实际”空值,这是您必须要做的事情,因为您可以将其放入查询字符串参数中。在存储过程中执行此转换将使程序在某种程度上“感知”查询字符串,并且感觉不对。相反,我会在aspx标记中执行此操作,该标记应该是Web感知的。这是一个源代码示例(未经测试,因此修复我的语法错误,或者更好的是,更改为string.Format()或参数化查询......
变化:
QueryToJSON(conn, "execute WebGetEmployeesPlanned'"
+Request.QueryString("customercode")+"',
'"+Request.QueryString("lang")+"',
'"+Request.QueryString("date")+"'").flush
为:
QueryToJSON(conn, "execute WebGetEmployeesPlanned "
+ (string.IsNullOrEmpty(Request.QueryString("customercode")) ?
"null, '"
:
"'" + Request.QueryString("customercode") + "','")
+Request.QueryString("customercode")+"',
'"+Request.QueryString("lang")+"',
'"+Request.QueryString("date")+"'").flush