一个页面,ASP调用两个表的内容

来源:百度知道 编辑:UC知道 时间:2024/07/07 22:30:27
<%
set rs=server.createobject("adodb.recordset")
sql="select * from shop_shop order by id desc"
rs.open sql,conn,1,1
do while not rs.eof
%>
<%=rs("jb1")%><%
set rs1=conn.execute("select * from shop_shop2 where jb="&rs("jb1")&"")
response.write rs1("pmc")
rs1.close
set rs1=nothing
%>
<%
rs.movenext
if rs.eof then exit do
loop
rs.close
set rs=nothing
%>
总说错误类型:
Microsoft JET Database Engine (0x80040E07)
标准表达式中数据类型不匹配。
/f/lexusm/down1.asp, 第 16 行
其它最主要的目的是把产品图片,说明放在shop_shop中,相关下载放在shop_shop2中,当点击具体一个产品时,就出现我产品图片,产品说明,还有对应该的相关下载。
谢谢
jb和jb1都为文本型,当我都改为数字型,是可以实现的,但我得用文本型,不然影响其它功能!
在这个下面实现:
<%
id=cint(Request.Querystring("id"))
set rs1=server.createobject("adodb.recordset")
sqltext="select * from shop_sh

rs每条记录都要去查询取得rs1,这样的做法程序效率太低了。大体上看了一下代码,觉得可以用一条sql语句两表关联就可以搞定。
sql="SELECT shop_shop2.pmc FROM shop_shop INNER JOIN shop_shop2 ON shop_shop.jb1 = shop_shop2.jb order by shop_shop.id desc"

后面只要循环rs就可以了
rs.open sql,conn,1,1
do while not rs.eof
response.write rs("pmc")
rs.movenext
loop
rs.close
set rs=nothing

因为没有库结构,SQL没经过测试。

where jb="&rs("jb1")&"" 如果jb1是字符串 应该加单引号

set rs1=conn.execute("select * from shop_shop2 where jb="&rs("jb1")&"")
这里的jb如果是字符串的话,就该成:set rs1=conn.execute("select * from shop_shop2 where jb='"&rs("jb1")&"'")