日期:2014-05-17  浏览次数:20878 次

简单问题再提问,好心人帮改一下,转不变来了~~
if   cname   <>   " "   then
    if   isno   =   "1 "   then
    cname   =   " ' "   &   cname   &   " ' "
    elseif   isno   =   "2 "   then
'--------------------这是问题的开始
    dim   sql2,rs2
    sql2= "select   gsid   from   duizhaobiao   where   zyid= "&cname& "   "
    set   rs2=server.createobject( "adodb.recordset ")
    set   rs2=conn.execute(sql2)
do   while   not   rs2.eof   or   not   rs2.bof        
        cname=rs2( "gsid ")& ", "
        rs2.movenext
loop
response.write   cname
    end   if
'------------------这是问题的结束
else
    if   range   =   "0 "   or   range   =   " "   then  
    cname   =   "default "
    else  
    cname   =   " ' "   &   range   &   " ' "
    end   if
end   if

------------------------------
上面的判断最终的目的是取出一个值,作为cname的值,然后会把这个值传给一个存储过程执行出结果,现在基本实现了目的,我在上面标示出有问题的部份就是:
当isno= "2 "时,
需要用到一个语句sql2= "select   gsid   from   duizhaobiao   where   zyid= "&cname& "   "
这个语句执行出来的结果是这个样子的:
gsid
------
255
365
487
而我需要把这个结果转化成如下的样式:
cname   =   '255,365,487 '
也就是变成存储过程可以接收的样式,可是上面的写法我总感觉有问题,并且实际测试的时侯也真的有问题,但现在一点儿心思都没有办法放在这儿,请好心人再看看,帮写一下~~


------解决方案--------------------
建议赋值cname用另一个名称代替
Dim newName

sql2= "select gsid from duizhaobiao where zyid= "&cname& " "
set rs2=conn.execute(sql2)
If Not rs2.Eof Then
newName= strRs.GetString(,,, ", ", " ") '取出ID,用,分开
End If

'删除最后的逗号
If newName <> " " Then newName = Mid(newName, 1, Len(newName)-1)

'添加单引号
newName = " ' " & newName & " ' "

.....
------解决方案--------------------
开始
cname= " "
循环里边用
cname=cname&rs2( "gsid ")& ", "
然后循环后边用 ljupin(蓝眼泪.NET ---> I come from Ningxia of China)的方法删除逗号加单引号
不知道可不可以