您好我是ASP的新手,我正在尝试在我的页面中构建SQL。
sSQL = "SELECT "
sSQL = sSQL & " Message1,"
sSQL = sSQL & " Message2"
sSQL = sSQL & " FROM table1"
sSQL = sSQL & " WHERE"
sSQL = sSQL & " name = '" & customname & "'"
Set serverobject = Server.CreateObject("ADODB.Recordset")
serverobject .Open sSQL, conn
message1 = serverobject ("Message1")
message2 = serverobject ("Message2")
response.Write message1
response.Write message2
此处发生的是自定义名称是用户输入的名称,我正在与 table1 表格中的名称列进行比较。
如果匹配则一切正常,我得到了正确的结果。
但是如果自定义名称与名称不匹配,那么我收到此错误:
BOF或EOF为True,或者当前记录已被删除。请求的操作需要当前记录。
我知道如果我在调用查询时以某种方式检查null,如果它包含结果,那么我只能继续。有人可以帮助我,我怎样才能做到这一点。
答案 0 :(得分:1)
在阅读recordset
之前,您必须检查行,例如使用.eof
:
if (serverobject.eof) then
''// no matching rows
else
message1 = serverobject("Message1")
message2 = serverobject("Message2")
end if
同样,如果您不使用参数化语句,请不要忘记清除customname
变量中的字符串。