请帮我看看这段asp代码错在哪里?

2025-01-24 09:30:52
推荐回答(4个)
回答1:

首先你要告诉我们你的出错信息,让我们看看:
default.asp中的 onSubmit="return chkform(this)" 说明你再用javascript验证用户名和密码,当时在你的程序里没有看到chkform()函数.去掉看看.

login.asp中位置颠倒一下,rs.open放到sql="。。。"后面
SQL="select UserID,UserName from [users] where username='"&Username&"'and password ='"&Passw&"'"
rs.open SQL,conn,1,1

回答2:

set rs=Server.CreateObject("ADODB.Recordset")
rs.open SQL,conn,1,1
SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"
这段位置颠倒了,应该写成这样:
set rs=Server.CreateObject("ADODB.Recordset")
SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"
rs.open SQL,conn,1,1
还有你的SQL语句为什么要在Where前面加个"&"呢,当然这样写可能不会出错可是感觉是多此一举。直接写成这样就可以了:
SQL="select UserID,UserName from users where username='"&Username&"'and password ='"&Passw&"'"

回答3:

回复修改后的login.asp:

1、微软推荐使用OLEDB连接数据库:

conn.Open("provider=microsoft.jet.oledb.4.0;data source="&
Server.MapPath("wapdb.mdb"))

2、把SQL语句放到rs.open前面,不然SQL为空又怎么能open;

3、注意你的SQL:

SQL="select UserID,UserName from users"&"where username='"&Username&"'and password ='"&Passw&"'"

users"&"where这里错了,"&"前面或后面需要一个空格,其实这里也没有必要这样写,改成这样:

SQL="select UserID,UserName from [users] where username='"&Username&"' and password='"&Passw&"'"

4、养成在ASP中用response.write(SQL)检查语句错误的习惯。

回答4:

虽然你SQL语句有了,但是recordset都没有打开,怎么可能会有数据出来,你的rs.eof怎么会有用?
应该在SQL="..."后面加上:
set rs=server.createobject("adodb.recordset")
rs.open SQL,conn,1,1
而且还要在页面最后把conn和rs都关掉及清除掉
rs.close
set rs=nothing
conn.close
set conn=nothing