我感到特别奇怪的问题 关于数据库连接请大家进来看看
<!--#include file="include/connectdb.asp" -->
<% ygname=session("ygname")
set rs1=server.createobject("adodb.recordset")
sql="select * from ygtable where ygname=" &ygname
rs1.open sql,cn,3,3 %>
我这样写就出错: Microsoft JET Database Engine (0x80040E07)
指rs1.open sql,cn,3,3这一行出错
而我这样写
<!--#include file="include/connectdb.asp" -->
<% ygname=session("ygname")
set rs1=server.createobject("adodb.recordset")
sql="select * from ygname"
rs1.open sql,cn,3,3 %>
就不出错 为什么?为什么不能加查询条件?
其中session("ygname")是上个页面中打开同样的表ygname中取得的一个
字段值 而且我在上个页面写了rs.close,cn.close
是不是哪点东西我没想到 做错了?
我有时真的觉得我写程序很邪 出现莫名其妙的错误
问题点数:20、回复次数:7Top
1 楼benzoin(yy)回复于 2003-08-03 18:59:17 得分 0
sql="select * from ygtable where ygname=" &ygname
response.write sql
你打印这句在查询分析器里面能通过吗?Top
2 楼itcoco(椰子)回复于 2003-08-03 19:04:26 得分 0
两种情况下我在注释掉rs1.open sql,cn,3,3 后response.write(sql)都可以正常正常显示
我是在asp网业上测的 不会用查询分析器Top
3 楼itcoco(椰子)回复于 2003-08-03 19:10:30 得分 0
<!--#include file="include/connectdb.asp" -->
<% ygname=session("ygname")
response.Write(ygname)
set rs1=server.createobject("adodb.recordset")
sql="select * from ygtable "
'sql="select * from ygtable where ygname=" &ygname
response.Write(sql)
rs1.open sql,cn,1,3 %>
显示123select * from ygtable
<!--#include file="include/connectdb.asp" -->
<% ygname=session("ygname")
response.Write(ygname)
set rs1=server.createobject("adodb.recordset")
'sql="select * from ygtable "
sql="select * from ygtable where ygname=" &ygname
response.Write(sql)
'rs1.open sql,cn,1,3 %>
显示123select * from ygtable where ygname=123
Top
4 楼benzoin(yy)回复于 2003-08-03 19:11:01 得分 0
不是说正常显示的问题,主要是你的sql语句的问题,如果你取得的sql语句有语法错肯定rs1.open sql,cn,3,3 就不能通过,类似于,你从数据库中取得ygname字符串中含有'单引号,或者&符号,或者一些特殊符号时他就有可能引出错误
类:ygname="test's"
数据库操作时肯定会报错,叫你打印sql语句是喊你看sql语句是否合法Top
5 楼benzoin(yy)回复于 2003-08-03 19:12:32 得分 15
ygname是什么数据类型?字符串?
那你就该写成
sql="select * from ygtable where ygname='" &ygname&"'"Top
6 楼sbje981(小李子)回复于 2003-08-03 19:19:25 得分 5
因为ygname是字符型必须这样写
sql="select * from ygtable where ygname='" &ygname&"'"
Top
7 楼itcoco(椰子)回复于 2003-08-03 19:43:10 得分 0
是字符串 我知道错在哪了现在可以了sql="select * from ygtable where ygname='" &ygname&"'"
主要是一开始sql="select * from ygtable where ygname=" session("ygname")忘了是字符串
这回知道了还是自己的基本功差Top




