【问题标题】:ASP Classic - If test failingASP Classic - 如果测试失败
【发布时间】:2014-02-03 23:45:23
【问题描述】:

我真的不明白为什么 if 测试总是失败。我已经验证了会话变量 sCrs_cde(课程代码)是正确的,并且仅存在于 sql 查询返回的多条记录之一中。 (它是与年份和学期相关的外键的一部分)。我正在尝试为课程标题设置值,但它始终写为空值 ('')

Dim Recordset1
Dim Recordset1_cmd
Dim Recordset1_numRows

Set Recordset1_cmd = Server.CreateObject ("ADODB.Command")
Recordset1_cmd.ActiveConnection = MM_Jenz_STRING
Recordset1_cmd.CommandText = "SELECT ID_NUM, Crs_Title, YR_CDE, TRM_CDE, CRS_CDE, TRANSACTION_STS, SUBTERM_CDE FROM dbo.STUDENT_CRS_HIST WHERE ID_NUM = ? And Transaction_sts = 'C' "

Recordset1_cmd.Prepared = true
Recordset1_cmd.Parameters.Append Recordset1_cmd.CreateParameter("param1", 5, 1, -1, Recordset1__MMColParam) ' adDouble

Set Recordset1 = Recordset1_cmd.Execute
Recordset1_numRows = 0
%>
<%
Do While not Recordset1.Eof 
   response.write(Recordset1.Fields.Item("CRS_cde").Value)
  IF (Recordset1.Fields.Item("CRS_cde").Value) = (Session("sCrs_cde")) THEN
      Session("sCrs_Title") = (Recordset1.Fields.Item("CRS_Title").Value)
      Session("sYr_cde") = (Recordset1.Fields.Item("YR_CDE").Value)
      Session("sTrm_cde") = (Recordset1.Fields.Item("Trm_Cde").Value)
      Session("sSubterm_cde") = (Recordset1.Fields.Item("Subterm_cde").Value)
      EXIT Do
   ELSE
     Recordset1.movenext
   END IF
Loop

【问题讨论】:

  • CRS_cde是什么数据类型?我会将 Session("sCRS_cde") 保存到一个变量中,确保它是相同的数据类型(整数),然后进行比较。如果您将整数与字符串进行比较,这可以解释您的问题
  • 为什么在while循环之前有服务器标签(%&gt;&lt;%)
  • @meda - 可能是剪切、复制和粘贴的结果。他正在关闭一个脚本块并在下一行打开另一个,这是不必要的,但实际上并没有错
  • 你不能一起摆脱 if 语句并在 SQL 查询中使用 (Session("sCrs_cde") - SELECT ID_NUM, Crs_Title, YR_CDE, TRM_CDE, CRS_CDE, TRANSACTION_STS, SUBTERM_CDE FROM dbo .STUDENT_CRS_HIST WHERE CRS_CDE = "&Session("sCRS_cde")& " and ID_NUM = ? and Transaction_sts = 'C'
  • 另外,这段代码显然是由 Dreamweaver 生成的。 Dreamweaver 的 ASP 数据库连接代码是可怕的。我建议您学习如何自己编写代码。 webcheatsheet.com/asp/database_connection.php

标签: sql asp-classic recordset


【解决方案1】:

谢谢大家。我在每节编程 101 课程中都犯了一个愚蠢的错误。我没有 rtrim 值。我不知道多余的空格是从哪里来的,因为这两个值都是从数据库(不同的表)中检索出来的,但是在 if 语句中对这两个值进行了修剪之后,我终于让它通过了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 2013-12-01
    • 1970-01-01
    相关资源
    最近更新 更多