注册 登录
编程论坛 ASP技术论坛

[求助]有关asp用户登录系统的问题

蝶紫 发布于 2007-09-21 14:19, 1104 次点击

这是我的logon.asp的代码?不知道哪里错了。
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access Driver] 参数不足,期待是 1

谁帮帮我!不行的化给我一个简单的用户登陆系统,适合初学者就可以了,最好是有一整套简单的代码下载。
<%@ Language=VBScript %>
<%
dim sql,rs,conn
name = Request.Form("name")
passwd = Request.Form("passwd")
sql = "select name,passwd,type from usertype where name =’" & name & "’"
set conn = server.CreateObject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("date/xhbook.mdb")
set rs = server.CreateObject("adodb.recordset")
rs.Open sql,conn
if rs.EOF then
response.write "错误的用户名或密码!"
rs.Close
set rs = nothing
conn.Close
set conn = nothing
Response.End
end if
if not (rs("passwd") = passwd) then
response.write "错误的用户名或密码!"
rs.Close
set rs = nothing
conn.Close
set conn = nothing
Response.End
end if
session("username") = rs("name")
session("usertype") = rs("type")
rs.Close
set rs = nothing
sql = "update visit set visitnum = visitnum +1 "
conn.Execute sql
conn.Close
set conn = nothing
Response.Redirect "index.asp" %>
问题补充:改成这个后:1.rs.Open sql,conn,1,1 还是有错!
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC 驱动程序不支持所需的属性。
2.把与数据库连接的代码单独放到一个文件里,在要用到数据库的文件里用include把数据库连接文件包含进来 ,还是有错。
用IIS打开logon.asp总是说“ 错误的用户名或密码!”
如果去了这句话on error resume next 错误还是一样的!
如,将它设为conn.asp,代码如下:
<%
dim conn,db
dim connstr
db="date/xhbook.mdb"
on error resume next
connstr="DBQ="+server.mappath(""&db&"")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
if err then
err.clear
else
conn.open connstr
end if
sub CloseConn()
conn.close
set conn=nothing
end sub
%>

12 回复
#2
蝶紫2007-09-21 14:20
在线等
#3
hmhz2007-09-21 14:32

<%
set conn = server.CreateObject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("date/xhbook.mdb")
name = Request.Form("name")
passwd = Request.Form("passwd")
set rs = server.CreateObject("adodb.recordset")
rs.Open"select name,passwd,type from usertype where name ='"&name&"'",conn,1,1
if rs.EOF then
response.write "错误的用户名或密码!"
Response.End
end if
if passwd<>rs("passwd") then
response.write "错误的用户名或密码!"
Response.End
end if
session("username") = rs("name")
session("usertype") = rs("type")
conn.execute "update visit set visitnum="&rs("visitnum")&"+1 where name ='"&name&"'"
rs.Close
set rs = nothing
Response.Redirect "index.asp"
%>

[此贴子已经被作者于2007-9-21 14:45:18编辑过]

#4
jxdz0864652007-09-21 15:22
数据库打开程序有错吧!
#5
蝶紫2007-09-21 16:02
我试试
#6
蝶紫2007-09-21 16:04
3楼还是有错的!
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC 驱动程序不支持所需的属性。
rs.Open"select name,passwd,type from usertype where name ='"&name&"'",conn,1,1
这句话错了
#7
蝶紫2007-09-21 16:12
数据库打开程序有错吧!

我也觉得是数据库连接错了,但是总找不到解决的方法。

rs.Open sql,conn 我把这句加rs.Open sql,conn,1,3或rs.Open sql,conn,1,1

都是错的!
#8
hmhz2007-09-21 16:15

<%
set Conn=server.createobject("adodb.Connection")
conn.open="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath("date/xhbook.mdb")
set rs=server.createobject("adodb.recordset")

name = Request.Form("name")
passwd = Request.Form("passwd")
set rs = server.CreateObject("adodb.recordset")
rs.Open"select name,passwd,type,visitnum from usertype where name ='"&name&"'",conn,1,1
if rs.EOF then
response.write "错误的用户名或密码!"
Response.End
end if
if passwd<>rs("passwd") then
response.write "错误的用户名或密码!"
Response.End
end if
session("username") = rs("name")
session("usertype") = rs("type")
conn.execute "update visit set visitnum="&rs("visitnum")&"+1 where name ='"&name&"'"
rs.Close
set rs = nothing
Response.Redirect "index.asp"
%>

#9
shaoli42612007-09-21 16:20
数据库字段对吗??
#10
蝶紫2007-09-21 16:28
谢谢8楼的!
#11
蝶紫2007-09-21 16:35

set Conn=server.createobject("adodb.Connection")
conn.open="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath("date/xhbook.mdb")
set rs=server.createobject("adodb.recordset")

name = Request.Form("name")
passwd = Request.Form("passwd")

set rs = server.CreateObject("adodb.recordset")
rs.Open"select name,passwd,type,visitnum from usertype where name ='"&name&"'",conn,1,1
对了,为什么这样换就可以了,

sql = "select name,passwd,type from usertype where name =’" & name & "’"
set conn = server.CreateObject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("date/xhbook.mdb")
set rs = server.CreateObject("adodb.recordset")
rs.Open sql,conn
这不是数据库连接吗?




#12
hmhz2007-09-21 16:36
数据库连接必须在
sql = "select name,passwd,type from usertype where name =’" & name & "’"

上面
#13
蝶紫2007-09-21 16:41
哦,知道了,谢谢!又学到东西了!
1