Asp classic 经典ASP:使用If语句时选择空

Asp classic 经典ASP:使用If语句时选择空,asp-classic,Asp Classic,我有一段简单的代码,用于填充db表中的select对象。我想选中一个值以将条目设置为选中,但当我选中一个db值时,我会得到一个空的选择框。此代码生成空框: response.write "<td><select name='FromDept'>" Do While not rs.eof If rs("DeptID") = 61 Then response.write "<option value=" & rs("DeptID") &am

我有一段简单的代码,用于填充db表中的select对象。我想选中一个值以将条目设置为选中,但当我选中一个db值时,我会得到一个空的选择框。此代码生成空框:

response.write "<td><select name='FromDept'>"
Do While not rs.eof
   If rs("DeptID")  = 61 Then 
      response.write "<option value=" & rs("DeptID") & " selected>" & rs("DeptName")     & "</option>" 
   Else    
      response.write "<option value=" & rs("DeptID") & ">" & rs("DeptName") & "</option>"
   End If 
   rs.MoveNext     
Loop
rs.close
response.write "</select></td>"
response.write“”
做而不做
如果rs(“DeptID”)=61,则
response.write“”&rs(“DeptName”)和“”
其他的
response.write“”&rs(“DeptName”)和“”
如果结束
下一个
环
克洛斯
响应。写入“”
但是,此代码会生成一个包含以下值的选择框:

response.write "<td><select name='FromDept'>"
LpCnt = 0 
Do While not rs.eof

    If LpCnt = 9 Then 
       response.write "<option value=" & rs("DeptID") & " selected>" & rs("DeptName") & "</option>" 
    Else    
       response.write "<option value=" & rs("DeptID") & ">" & rs("DeptName") & "</option>"
    End If 
    rs.MoveNext     
    LpCnt = LpCnt + 1 
Loop
rs.close
response.write "</select></td>"  
response.write“”
LpCnt=0
做而不做
如果LpCnt=9,则
response.write“”&rs(“DeptName”)和“”
其他的
response.write“”&rs(“DeptName”)和“”
如果结束
下一个
LpCnt=LpCnt+1
环
克洛斯
响应。写入“”

谢谢你的帮助

将值分配给临时变量:

response.write "<td><select name='FromDept'>"
Do While not rs.eof
   dept = rs("DeptID")
   If dept  = 61 Then 
      response.write "<option value=" & dept & " selected>" & rs("DeptName")     & "</option>" 
   ...
response.write“”
做而不做
部门=卢比(“部门”)
如果dept=61,则
response.write“”&rs(“DeptName”)和“”
...

空下拉列表意味着您在该语句中遇到错误,它很可能被忽略,原因是在错误恢复下一行时出现了

首先,在“下一行”中删除错误恢复时的

第二,这种代码中的错误意味着类型转换问题。请尝试以下代码:

Dim curDeptID
Do While not rs.eof
   curDeptID = 0
   If Not IsNull(rs("DeptID")) Then
       curDeptID = CLng(CStr(rs("DeptID")))
   End If
   If curDeptID=61 Then 
      response.write "<option value=" & rs("DeptID") & " selected>" & rs("DeptName")     & "</option>" 
   Else    
      response.write "<option value=" & rs("DeptID") & ">" & rs("DeptName") & "</option>"
   End If 
   rs.MoveNext     
Loop
Dim curDeptID
做而不做
curDeptID=0
如果不为空(rs(“DeptID”)),则
curDeptID=CLng(CStr(rs(“DeptID”))
如果结束
如果curDeptID=61,则
response.write“”&rs(“DeptName”)和“”
其他的
response.write“”&rs(“DeptName”)和“”
如果结束
下一个
环
看这里-