请教 Rs记录集 bof/eof 为false时 结果输出问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 20:31:46
先说明下(代码在下,伴有注释)

需求,
当sql查询结果不为空时,则输出查询结果+1
当查询结果为空时 输出form传递过来的变量。

问题,
现在,当不为空时的情况完全正常, 问题出在为空时。 不论怎么写,都不输出任何结果。输出bof/eof都看了。 为空时Rs bof/eof 都是false
数据库联接是正常的,不然也不会输出不为空的结果
-----------------------------

<%= Request.Form("Orga") %>
'此行为确定上一页面form正确传递(2种sql结果都能正常显示)

<% dim Uno,Nors,pno
set Nors = Server.CreateObject(G_FS_RS)
Nors.open "SELECT MAX(UserNumber) AS Expr1 FROM MXUsers where Organ='"&Request.Form("Orga")&"'",user_Conn,1,3
'sql查询 Organ变量来自上个页面,为了确保此处有值,在开始专门输出了一词。

if Nors.bof or Nors.eof then
pno = Request.Form("Orga")
'!!!问题就在这里,为空时不输出任何信息。
else
pno = right(Nors("Expr1"), 8)+1
'这一步没有问题,按我的需求将字段中前两个字母去除,然后对后面的整数进行+1操作。这一步没有问题
end if
%>
<%= pno %>
'结果输出在这里。 sql不为空一切正常,sql为空则什么都不显示!
<%= Request.Form("Orga") %>

if not Nors.bof and not Nors.eof then
pno = right(Nors("Expr1"), 8)+1
else
pno = Request.Form("Orga")
end if

最看不起复制别人答案的那种人了。

Nors.open "SELECT * FROM MXUsers where Organ='"&Request.Form("Orga")&"'",user_Conn,1,3
应该是这样

if not Nors.bof and not Nors.eof then
pno = right(Nors("Expr1"), 8)+1
else
pno = Request.Form("Orga")
end if

if Nors.bof and Nors.eof then
pno = Request.Form("Orga")
else
pno = right(Nors("Expr1"), 8)+1
end if

应该是风讯里的一段代码吧:这样改了一下

<%
dim Uno,Nors,pno
set Nors = Server.CreateObject(G_FS_RS)
Nors.open "SELECT MAX(UserNumber) AS Expr1 FROM MXUsers where Organ='"&Request.Form("Orga")&"'",user_Conn,1,3

if Nors.eof then
pno = Request.Form("Orga")
else
pno = righ