2014-01-24 2 views
0

나는 왜 테스트가 항상 실패하는지 이해하지 못합니다. 세션 변수 sCrs_cde (코스 코드)가 올바른지 확인했으며 SQL 쿼리에서 반환 된 여러 레코드 중 하나에서만 존재합니다. (그것은 한 해와 한 학기에 묶인 외래 키의 일부입니다). 코스 제목의 값을 세우려고 시도하지만 항상 빈 값 ('')으로 작성합니다.ASP Classic - 테스트에 실패한 경우

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 
+0

CRS_cde는 어떤 데이터 유형입니까? 세션 ("sCRS_cde")을 변수에 저장하고 동일한 데이터 유형 (정수)인지 확인한 다음 비교합니다. 정수를 문자열과 비교하면 문제를 설명 할 수 있습니다 – Sparky

+0

왜 while 루프 전에 서버 태그 ('%><%')가 있습니까 – meda

+0

@meda - 아마 절단, 복사 및 붙여 넣기의 결과입니다. 그는 하나의 스크립트 블록을 닫고 불필요하지만 실제로 잘못되지 않은 다음 행에서 또 다른 문자열을 엽니 다. – John

답변

0

모두에게 감사드립니다. 나는 모든 프로그래밍 101 수업이 가르치는 골치 아픈 실수를 저질 렀다. 나는 값들을 트림하지 않았다. 두 개의 값이 데이터베이스 (다른 테이블)에서 검색 되었기 때문에 여분의 공백이 어디에서 왔는지는 알 수 없지만 if 문에서 두 값을 모두 rtrimming 한 후에 마침내 통과하게되었습니다.