beps第2项行动计划:请高手帮我看看代码哪里错了,会报错

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/29 21:48:01
做了一个搜索:
<%
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 ";