純ASP 高手入內 奉送20點 感恩

2010-04-01 9:24 pm
使用以下語法 卻顯示

錯誤類型:
ADODB.Connection (0x800A0E78)
當物件關閉時,不允許操作。
/未命名網站 5/logon.asp, line 12

本資料夾 使用權限
均無問題 語法如下 我只想直接連結 access 資料庫在同一資料夾
<%

Set conn= Server.CreateObject("ADODB.Connection")
Set rs=Server.CreateObject("ADODB.Connection")
Set db=Server.CreateObject("ADODB.Connection")
ConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("manage.mdb")
conn.open ConnStr
db.Open "user",conn,3,3
SQL="SELECT * FROM user WHERE ((user.usrid)='" & Request("id") &_
"' AND (user.passwd)='" & Request("passwd") & "')"
Set rs=db.Execute(SQL)
If rs.EOF Then
Response.Write "抱歉 ! 您所輸入的 ID 或密碼錯誤 !"
Else
Session("user")=rs("usrid")
Session("menu1")=rs("menu1")
Session("menu2")=rs("menu2")
Session("menu3")=rs("menu3")
Response.Redirect "menu.asp"
End If
%>
更新1:

Set rs=Server.CreateObject("ADODB.Recordset") 改了也無法使用呢

回答 (2)

2010-04-05 10:43 pm
✔ 最佳答案
問題應該就是出在你沒開啟 RS ,
RS.OPEN SQL .....................

所以才會出現 當物件關閉時,不允許操作。的錯誤!


你參考看看我的寫法 ~

SET CN = SERVER.CREATEOBJECT("ADODB.CONNECTION")
CN.OPEN "DRIVER={MICROSOFT ACCESS DRIVER (*.MDB)};DBQ="&SERVER.MAPPATH("manage.mdb")

SET RS=SERVER.CREATEOBJECT("ADODB.RECORDSET")
SQL="SELECT * FROM user WHERE ((user.usrid)='" & Request("id") &
"' AND (user.passwd)='" & Request("passwd") & "')"
RS.OPEN SQL,CN,1,3

If RS.EOF Then
Response.Write "抱歉 ! 您所輸入的 ID 或密碼錯誤 !"
Else
Session("user")=RS("usrid")
Session("menu1")=RS("menu1")
Session("menu2")=RS("menu2")
Session("menu3")=RS("menu3")
Response.Redirect "menu.asp"
End If

RS.close
CN.close

希望對你有幫助唷 ~
參考: Me
2010-04-01 11:02 pm
取消這兩行
Set db=Server.CreateObject("ADODB.Connection")
db.Open "user",conn,3,3

Set rs=db.Execute(SQL)
改為
Set rs=conn.Execute(SQL)

rs.Open SQL, conn, 3, 3


2010-04-01 23:43:29 補充:
Set rs=conn.Execute(SQL)
其實就等如
Set rs=Server.CreateObject("ADODB.Recordset")
rs.Open SQL, conn, 0, 1


收錄日期: 2021-04-25 20:34:29
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20100401000010KK03138

檢視 Wayback Machine 備份