但丁地狱通关视频解说:显示ASP记录怎么出错呀!大家来帮帮我吧

来源:百度文库 编辑:中科新闻网 时间:2024/05/09 17:02:27
ASP从数据库中读取标题,并给标题加上连接用Show.asp作为显示页面,
<td width="345"><a href=show.asp?id=<%=rs("id")%> ><%=rs("title")%>

show.asp 页面(这个页面一运行就出错,请各位大侠帮帮忙)
代码如下:
<%
set conn=server.createobject("adodb.connection")
conn.open "provider=microsoft.jet.oledb.4.0;data source="&server.MapPath("addnews.mdb")
exect="select * from news"
set rs=server.createobject("adodb.recordset")
rs.open "select * from news where id="&id
%>
<table width="500" border="0" cellpadding="0" align="center">
<tr>
<td bgcolor="#FFFFCC"> <%=rs("title")%></td>
</tr>
<tr>
<td height="19" bgcolor="#CCCCFF">
<div align="center">来源:<%=rs("laiyuan")%> 作者:<%=rs("zhuozhe")%> 时间:
<% =year(rs("addtime"))&"-"&month(rs("addtime"))&"-"&day(rs("addtime")) %>
</div>
</td>
</tr>
<tr>
<td height="90" bgcolor="#FFCCCC"> <%=rs("connet")%></td>
</tr>
</table>
我加上了rs.open "select * from news where id="&id,Conn,1,3

但还是不行,运行出现以下错误:

“语法错误 (操作符丢失) 在查询表达式 'id=' 中。 ”

你帮我再看看,是怎么一回事呀

你的代码结构完全有问题呀。

首先是连接代码
db_path = "addnews.mdb"
Set conn= Server.CreateObject("ADODB.Connection")
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db_path)
conn.Open connstr

再是打开记录集
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "select * from news where id="&id
rs.Open sql,conn,1,1

你的where子句中的表达表 "id = "&id 可以看出前面一定还要有一个 id = 值 啊不然肯定会错误的啦。

<%
db_path = "addnews.mdb"
Set conn= Server.CreateObject("ADODB.Connection")
connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.MapPath(db_path)
conn.Open connstr

id = 1

Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "select * from news where id="&id
rs.Open sql,conn,1,1
%>
<table width="500" border="0" cellpadding="0" align="center">
<tr>
<td bgcolor="#FFFFCC"> <%=rs("title")%></td>
</tr>
<tr>
<td height="19" bgcolor="#CCCCFF">
<div align="center">来源:<%=rs("laiyuan")%> 作者:<%=rs("zhuozhe")%> 时间:
<% =year(rs("addtime"))&"-"&month(rs("addtime"))&"-"&day(rs("addtime")) %>
</div>
</td>
</tr>
<tr>
<td height="90" bgcolor="#FFCCCC"> <%=rs("connet")%></td>
</tr>
</table>

还有其它问题去我的blog http://gvvvfg.hongdait.com我的QQ技术群 8859809 那里一定有你想要的。

rs.open "select * from news where id="&id,Conn,1,3

加上后面那些

还有exect="select * from news"
这句是不是多余的?

在show.asp中你没有获取到id,你要加一句
放在
set conn=server.createobject("adodb.connection")
下一行
id=request("id")
然后就可以了,但你数据库中必须有id这个列,类型还必须是自动编号的

楼上的不要误导人家了
首先数据库连接代码没错
set conn=server.createobject("adodb.connection")
conn.open "provider=microsoft.jet.oledb.4.0;data source="&server.MapPath("addnews.mdb")
当然是可以的
第二,你说前面还有个ID值,思路是对的,可不是你这样说。楼主已经把ID放在第一个页面传过来了
楼主的问题就出在这,因为没写接收语句,id=request.QueryString("id"),楼主还有的问题就是一楼说的!!
rs.open "select * from news where id="&id,Conn,1,3
在sql语句后面加上那些
把这句去了exect="select * from news"
如果只是读取信息显示,把后面的改为1,1也可以
数字具体代表什么呢?看下面
RS.OPEN SQL,CONN,A,B
A: ADOPENFORWARDONLY(=0) 只读,且当前数据记录只能向下移动
ADOPENSTATIC(=3) 只读,当前数据记录可自由移动
ADOPENKEYSET(=1) 可读写,当前数据记录可自由移动
ADOPENDYNAMIC(=2) 可读写,当前数据记录可自由移动,可看到新增记录
B: ADLOCKREADONLY(=1) 默认值,用来打开只读记录
ADLOCKPESSIMISTIC(=2) 悲观锁定
ADLOCKOPTIMISTIC(=3) 乐观锁定
ADLOCKBATCHOPTIMISTIC(=4) 批次乐观锁定