Jquery ASP(不是.NET):将null作为参数发送到查询字符串中的存储过程?

Jquery ASP(不是.NET):将null作为参数发送到查询字符串中的存储过程?,jquery,stored-procedures,asp-classic,Jquery,Stored Procedures,Asp Classic,我在ASP页面上有以下代码: <% QueryToJSON(conn, "execute WebGetEmployeesPlanned'" +Request.QueryString("customercode")+"', '"+Request.QueryString("lang")+"', '"+Request.QueryString("date")+"'").flush %> 这个页面上除了一些include之外没有其他代码,因为我使用$.

我在ASP页面上有以下代码:

<%
    QueryToJSON(conn, "execute WebGetEmployeesPlanned'"
    +Request.QueryString("customercode")+"', 
    '"+Request.QueryString("lang")+"', 
    '"+Request.QueryString("date")+"'").flush
%>

这个页面上除了一些include之外没有其他代码,因为我使用$.getJSON()从另一个页面使用ajax调用这个页面

问题是我不知道如何将NULL作为参数之一发送到SP

有时Request.QueryString(“customercode”)将为空。我需要知道如何将其放入上面的代码中,以使SP将此参数视为NULL

我可以访问SP代码,因此我可以更改该端的某些内容,将空字符串转换为null


提前谢谢。

你走对了方向。查询字符串参数只是字符串。因此,您必须为NULL选择一个字符串代表,它不会与您将要发送的任何实际字符串值冲突。可以使用空字符串“null”或“Thomas的特殊null标志”;没关系。查询字符串参数中没有NULL的“正式”表示形式

更新:不,我认为存储过程不是处理此转换的地方。原因是,您必须将查询字符串参数中null的字符串表示形式转换为“真实”null,因为您可以在查询字符串参数中输入的内容有限。在存储过程中进行这种转换会使过程在某种程度上“意识到”查询字符串,而这感觉是不对的。相反,我会在aspx标记中完成这项工作,它应该是web感知的。下面是一个源代码示例(未经测试,因此请修复我的语法错误,或者更好地,更改为string.Format()或参数化查询

更改:

QueryToJSON(conn, "execute WebGetEmployeesPlanned'"
+Request.QueryString("customercode")+"', 
'"+Request.QueryString("lang")+"', 
'"+Request.QueryString("date")+"'").flush
致:


然后我应该在SP中处理这个问题?在执行SP的其余部分之前,您是否有一个示例,说明如何将MS SQL中的字符串表示形式转换为null?我的T-SQL知识非常有限:-)非常感谢您的时间,您的示例包含了我要查找的内容。
QueryToJSON(conn, "execute WebGetEmployeesPlanned "
    + (string.IsNullOrEmpty(Request.QueryString("customercode")) ?
          "null, '"
          :
          "'" + Request.QueryString("customercode") + "','")
    +Request.QueryString("customercode")+"', 
    '"+Request.QueryString("lang")+"', 
    '"+Request.QueryString("date")+"'").flush