beps第2项行动计划:请高手帮我看看代码哪里错了,会报错
<%
address=trim(Request.Form("address"))
area2=trim(Request.Form("area2"))
city=trim(Request.Form("city"))
Sqlstr=""
if address<>"" then
sqlstr=sqlstr+" and (address like '%"&address&"%')"
end if
if area2<>"" then
sqlstr=sqlstr+" and (area2 like '%"&area2&"%')"
end if
if city<>"" then
sqlstr=sqlstr+" and (city like '%"&city&"%')"
end if
……
if Session("uid")="admin" then
Sql="select * from area "&sqlstr&" order by area_id desc"
else
……
%>
搜索会出现
[Microsoft][ODBC Microsoft Access Driver] FROM 子句语法错误。
那该怎么写啊,帮忙啊!
czmtxz: where 加了也是错的!:) WHERE 子句语法错误。
同志们那....怎么没有人注意SELECT中的WHere呢?
看了你的代码,在SQL语句中怎么能不加WHERE呢?太常见的错误.编代码时间长了适当休息一下.
把:
Sql="select * from area "&sqlstr&" order by area_id desc"
写成:
Sql="select * from area where "&sqlstr&" order by area_id desc"
顺便说一下你这种字符串连接方法是对的.
Sql="select * from area "&sqlstr&" order by area_id desc"
"&sqlstr&" 没有这种写法
你可以在SQL语句执行前,将其内容显示出来看一下就知道了。
你执行的语句是这样的
select * from area and (area2 like '%xxxx%') order by area_id desc"
为什么要加and呢?
你在写
sqlstr=sqlstr+" and (area2 like '%"&area2&"%')"
之前先判断一下sqlstr是不是空,如果是空就别加and否则再加and,如下,三条语句都这样写。
if sqlstr="" then
sqlstr=sqlstr+" (area2 like '%" & area2 & "%') "
else
sqlstr=sqlstr+" and (area2 like '%" & area2 & "%') "
end if
<%
dim a,b,c
address=trim(Request.Form("address"))
area2=trim(Request.Form("area2"))
city=trim(Request.Form("city"))
if address<>"" then
a="a"
else
a=""
end if
if area2<>"" then
b="b"
else
b=""
end if
if city<>"" then
c="c"
else
c=""
end if
dim abc
abc=a+B+c
if abc="abc" then
SQLSTR="XXXX"
elseif abc="ac" then
.
.
.
.
%>
如此类推``尽可能不要将主要的SQL语句分开`
调试比较困难`XXXX代表完整的SQL语句
缺少where 按照你用AND的写法,最好sqlstr初始化的时候写成
string sqlstr="where 1=1 ";