用这样的语句处理字符型变量怎么办?

yzflying 2001-08-01 05:54:01
val=request.form("del")
sql="delete from table where id in ("&val&")"
当val为数值型可以顺利执行语句,但当val为字符型时却不能,为什么?怎么处理呢?谢谢!
...全文
149 点赞 收藏 21
写回复
21 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
sweiquan 2001-08-03
我时间较忙,所以只能提供解决方案,具体的你自己做吧
1、在 val 取得值后,对val进行判断是否为数值,如果是则执行 sql 语句,否则不执行。
2、判断方法,用循环语句对 val 中的每一个字符判断其否在在数组 (0,1,2,3,4,5,6,7,8,9)中,如果有一个不是,则可以判断 val 不是数字组成的串
下面如何做,就看你自己的呀
回复
yzflying 2001-08-03
tripofdream(梦之旅)====>你的整个语句是不是:
strarray=split(valu,",")
sql="delete from xpdj where xingming in ('"&strarray(0)&"'"
for i=1 to ubound(strarray)
sql=sql&",'"&strarray(i)&"'"
next
sql=sql&")"
这样的语句执行没有问题,但是每次只能删除一条记录!
valu=request.form("checkbox")
用response.write valu 可以得到多个值,但为什么传递到sql语句只能删除一条呢?
回复
tripofdream 2001-08-03
我是说response.write sql
回复
neweb 2001-08-03
还是用这个试试,上次写的少打了几个字符

val=request.form("del")
val = "'" & Replace(val,", ","','") & "'"
sql="delete from table where id in ("&val&")"
回复
apboy 2001-08-02
用sql="delete from table where id="&int(val)
回复
id 是 int型的呀
回复
tripofdream 2001-08-02
是测试过的(WIN2000P/S +5.0 +IE5.0/5.5 +SQL7.0/2000)
回复
tripofdream 2001-08-02
更正:
sql=sql="delete from xpdj where xingming in ('"&strarray(0)&"'"
-->
sql="delete from xpdj where xingming in ('"&strarray(0)&"'"
回复
tripofdream 2001-08-02
2 neweb(永不言败):我上面的sql并不是最终的sql值,详见http://www.csdn.net/expert/topic/193/193372.shtm
2 yzflying(yanfei):应该不会的,你可以写出最终的sql内容看看
回复
tripofdream 2001-08-02
抱歉,多写了个"sql=",已经更正
回复
yzflying 2001-08-02
tripofdream(梦之旅):你的方法也不行呀,我试过呀。报错,SQL语句有问题,你自己试过吗?
neweb(永不言败):你的方法也不对呀?
回复
neweb 2001-08-02
纠正tripofdream(梦之旅)一个小错误:
sql="delete from xpdj where xingming in ('"&strarray(0)&"')"
少了右括号,yzflying(yanfei)你没改吗?
回复
yzflying 2001-08-02
tripofdream(梦之旅):现在语句不报错了,但每次只能删除一条呀
回复
neweb 2001-08-01
'把 val 处理成 "'a','b','c'"
val=request.form("del")
val = "'" & Replace(val,", "','") & "'"
sql="delete from table where id in ("&val&")"
回复
ttt2 2001-08-01
sql="delete from table where id in ('"&val&"')"
回复
tripofdream 2001-08-01
我刚把它挪地方了:
http://www.csdn.net/expert/topic/193/193372.shtm
回复
tripofdream 2001-08-01
http://www.csdn.net/expert/TopicView.asp?id=193372
回复
tripofdream 2001-08-01
当然不能(应该是没有结果)
sql="delete from table where name in ("&anme&")",你这一句的执行结果应该是象这样:sql="delete from table where name in ("aaa,bbb,ccc")",而不是这样:sql="delete from table where name in ("aaa","bbb","ccc")",解决方法你可以找一下以前的贴子
回复
hydnoahark 2001-08-01
>>sql="delete from table where name in ("&anme&")",name是字符型的!
anme必须是这样的字符串:'a','b','c'......
sql="delete from table where name in ("&name&")",name是字符型的!
最后的SQL语句为:
delete from table where name in ('a','b','c')
所以你必须预先处理name=request.form("del")
回复
yzflying 2001-08-01
现在我的语句是这样的
name=request.form("del")
sql="delete from table where name in ("&anme&")",name是字符型的!
这个语句不能执行!
回复
加载更多回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2001-08-01 05:54
社区公告
暂无公告