经典ASP:RecordSet字段没有任何价值

hof*_*lie 4 vbscript field ado recordset asp-classic

我不是一个ASP开发人员,所以有点迷失.

我有以下数据访问代码:

sSQL = "SELECT answer_id, company_name, old_access_company_name, answer, flag_asker_notified FROM Q01_ask_sheiiba_answer_company2 WHERE question_id="& sQuestion_id &" ORDER BY answer_id"
rs.open sSQL, conn  
DO WHILE NOT rs.EOF
    Response.Write(rs.Fields("answer"))
    rs.MoveNext
LOOP
Run Code Online (Sandbox Code Playgroud)

我已经通过在调用之前将其输出到响应来测试sql查询是否正确构建.它产生以下查询:

SELECT answer_id, company_name, old_access_company_name, answer, flag_asker_notified 
FROM Q01_ask_sheiiba_answer_company2 
WHERE question_id=988 
ORDER BY answer_id
Run Code Online (Sandbox Code Playgroud)

当我将那个确切的查询复制到sql management studio并运行它时,我得到5行的预期结果,每行包含每个单元格中的数据,但是,当我通过上面的代码运行它时,我获得了相同的5行相同的单元格数据,列为EXCEPT answer,为空!

我错过了什么?

提前致谢

小智 6

您可能想要尝试两件事:

将您的文本字段放在查询的末尾.例如:

SELECT answer_id,company_name,old_access_company_name,flag_asker_notified,answer

如果这不能给你结果,你可能想尝试:

WHILE NOT rs.EOF
theanswer=rs("answer")
Response.Write(theanswer)
rs.movenext
wend
Run Code Online (Sandbox Code Playgroud)

文本和备注字段可能会对ASP造成一定的破坏.

编辑:你可以尝试的另一件事是:

rs.CursorLocation = adUseClient
Run Code Online (Sandbox Code Playgroud)

要么

rs.CursorLocation = 3
Run Code Online (Sandbox Code Playgroud)