+ -
当前位置:首页 → 问答吧 → ASP分割字符串?急等高手解决!!!

ASP分割字符串?急等高手解决!!!

时间:2011-06-09

来源:互联网

我把两个字符串,赋值给更新语句,造成语句错误。现在想把字符串拆开,单独赋值。
update toubiaoRecord set t=83, 82, 87 where companyid=37, 53, 25
请问高手如何对应分割字符串(逗号间有空格),之后赋值。
调试语句如下,但还是有问题:
value1=request("a"&i) ‘获取第一字符串
value2=request("id"&i) ‘获取第二字符串
arrvalue1=split(replace(value1," ",""),",") ’去掉空格,并去掉逗号,转换成数组
arrvalue2=split(replace(value2," ",""),",")
for j = 0 to UBound(arrvalue1) ’加入循环
conn.execute("update toubiaoRecord set t="&arrvalue1(j)&" where companyid="&arrvalue2(j)&"")
next
还有附加问题,如何调试数组状态。response.write() 怎样书写?
我是新手,调试代码总是很难,而往往想得很简单,bug却很难解决。

作者: giantjian   发布时间: 2011-06-09

先判断request("a"&i)和request("id"&i)是否有值,

作者: beyond_me21   发布时间: 2011-06-09

value1=request("a"&i) ‘获取第一字符串
value2=request("id"&i) ‘获取第二字符串
你可以先
response.write(value1&"<br>"&value2)
看看值是否有获取到。这是第一步调试。

然后我们假设value1和value2都正常取到值了,分别是83, 82, 87和37, 53, 25
所以我们要开始试是否SQL语句的拼接有错了。
我们把SQL语句单独拿出来赋给一个变量,这样看上去清楚一点。

VBScript code
value1=83, 82, 87 '获取第一字符串
value2=37, 53, 25 '获取第二字符串
arrvalue1=split(replace(value1," ",""),",") '去掉空格,并去掉逗号,转换成数组
arrvalue2=split(replace(value2," ",""),",")
for j = 0 to UBound(arrvalue1) '加入循环
sql="update toubiaoRecord set t="&arrvalue1(j)&" where companyid="&arrvalue2(j)&""
response.Write(sql&"<br>")
'conn.execute(sql)
next


我们把数据库执行的语句先注释掉,免得他报错影响我们看。


这样得到的结果是
update toubiaoRecord set t=83 where companyid=37
update toubiaoRecord set t=82 where companyid=53
update toubiaoRecord set t=87 where companyid=25

这样的语句执行三次是没有任何问题的呀!所以你要去看看是否SQL中的字段是文本而不是数字,文本是要加单引号的

作者: tcwsyt   发布时间: 2011-06-09

VBScript code

value1="83, 82, 87" '获取第一字符串
value2="37, 53, 25" '获取第二字符串
arrvalue1=split(replace(value1," ",""),",") '去掉空格,并去掉逗号,转换成数组
arrvalue2=split(replace(value2," ",""),",")
for j = 0 to UBound(arrvalue1) '加入循环
sql="update toubiaoRecord set t="&arrvalue1(j)&" where companyid="&arrvalue2(j)&""
response.Write(sql&"<br>")
'conn.execute("update toubiaoRecord set t="&arrvalue1(j)&" where companyid="&arrvalue2(j)&"")
next



上面字符串忘加引号了。value1,value2那里

作者: tcwsyt   发布时间: 2011-06-09