当前位置:编程学习 > asp >>

asp 字符串分割对应数据库的ID输出内容

把下面的字符串以逗号分割开,然后对应数据库的ID把相应的内容输出来,下面的代码只能输出一个值。为什么?哪里出现问题,还是.....请哪位高手会的帮帮忙啊

Content = "2,8,12,18,40,41,42,43,44,45,46,47,48,49,51"

str = split(Content,",")

Set Rs2 = Server.CreateObject("ADODB.Recordset")
for i = 0 to ubound(str)
 tSQL = "SELECT * FROM Tb_Sur_Option WHERE ID="&str(i)
 Rs2.open tSQL,objConn,1,1
 If Not Rs2.eof then
  for j = 1 to Rs2.RecordCount
   response.Write Rs2("OptionText")
  Next
  Rs2.movenext
 End if
Next

追问:这样也不行呢

Content = "2,8,12,18,40,41,42,43,44,45,46,47,48,49,51"
str = split(Content,",")
Set Rs = Server.CreateObject("ADODB.Recordset")
for i = 0 to ubound(str)
SQL = "SELECT * FROM Tb_Sur_Option WHERE ID IN("&Content&")"
Rs.open SQL,objConn,1,1
 If Not Rs.eof then
  response.Write Rs("ID")&"<br>"
 End If
next

 

运行结果:15个2;如果输出的跟上面Content的数据一样的就对

2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
答案:其实用不着那么麻烦。你用MSSQL的话直接把这个字符串当作整个的表达式(使用in)。你的SQL语句看上去是:

 

SqlS = "select 字段1,字段2……字段n from xxx

where id in ("+Content+")"

 

然后使用常规方法逐行读取就可以了

你好 这位朋友,ASP没弄过,既然你求助我,我也只能从字面上帮你看一下,从你这个

for j = 1 to Rs2.RecordCount
   response.Write Rs2("OptionText")
  Next
  Rs2.movenext
循环里看 你应该把Rs2.movenext 放到 NEXT 之上 这样才能移动游标~ 否则只输出一条~

for i = 0 to ubound(str)
改成

for i = 0 to ubound(str.lenth)

上一个:用ASP编写设置输入字体的大小
下一个:ASP+PHP+CGI指什么啊?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,