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

yzflying 2001-08-01 05:54:01
val=request.form("del")
sql="delete from table where id in ("&val&")"
当val为数值型可以顺利执行语句,但当val为字符型时却不能,为什么?怎么处理呢?谢谢!
...全文
174 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
我时间较忙,所以只能提供解决方案,具体的你自己做吧
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)
落入凡间的猪 2001-08-02
  • 打赏
  • 举报
回复
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是字符型的!
这个语句不能执行!
加载更多回复(1)

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧