asp得一个简单问题,,为什么不能实现?

来源:百度知道 编辑:UC知道 时间:2024/05/24 15:26:49
已经与access建立连接conn
然后是下面代码
<%
if(request.QueryString("submit")="1") then
set rs=server.createobject("ADODB.Recordset")
sql="select * from admin where sname='123'"
rs.open sql,1,3

if not rs.BOF and not rs.EOF then
response.Write("god")

else
response.Write("bad")

end if
rs.close
set rs=nothing
else

end if

%>

为什么where sname='xx'
不管xx是数据库中有的和没有的纪录
都执行response.Write("god")
而不执行else得语句

rs.open sql,1,3这句话是错误的,你真的查询出来东西了吗?
应改成rs.open sql,conn,1,3
1,3是说记录集可更新,如果不要更新只是只读的话最好用1,1
所以最好写成rs.open sql,conn,1,1
conn是数据库连接对象
下面是创建conn的代码:
set conn=server.CreateObject("adodb.connection")
path=server.MapPath("DataBase.mdb")
conn.open "provider=microsoft.jet.oledb.4.0;data source="&path
还有就是
当游标指针 已经指向数据集的最后一条记录的时候,那么 Rs.Eof就为真,当游标指针 指到数据集中的第一条记录的时候,Rs.Bof为真.
if rs.bof then
表示:当前指针的位置是在第一行记录之前,则...
if rs.eof then
表示:当前指针的位置是在最后一行记录之后,则...
if not rs.eof then
表示:当前指针的位置没有到达最后一条记录
if not rs.bof then
表示:当前指针的位置没有到达第一条记录

你的数据中有 sname=xx这个记录吗
'xx'这个就是规定了sname的值必须为xx
这里的xx是常量
如果是变量则需要
'"&xx&"'这样xx就是一个变量了
还有你的conn呢
怎么没有看到呢
这个应该会处错误吧

正确的写法:一定要加上括号

if not (rs.BOF and not rs.EOF) then
response.Write("god")
else
response.Write("bad")