asp 怎么从循环外逐个取的循环内的每一个值

川娃子 2009-08-05 11:38:48
数据表
s1,s2
表结构
s1——id,name
s2——id,sid,name
表关系
s1.id=s2.sid
实现什么功能(注:在这里不能使用嵌套循环,否则就没有那种效果了)

dim id
set rs_s1 = server.createobject("ADODB.Recordset")
sql = "select * from s1"
rs_s1.open sql,conn,1,1
if not rs_s1.eof then
do while not rs_s1.eof
id=rs_s1("id")
rs_s1.movenext
loop
end if
rs_s1.close
set rs_s1 = nothing

set rs_s2 = server.createobject("ADODB.Recordset")
sql = "select * from s2 where sid="id
rs_s2.open sql,conn,1,1
if not rs_s2.eof then
do while not rs_s2.eof
rs_s2("name")
rs_s2.movenext
loop
end if
rs_s2.close
set rs_s2 = nothing

这样写是错误的在第一个循环中id=循环完了的最后的rs_s1("id")对第二个循环就没意义了
我想的是通过什么方法可以逐个获取第一个循环中的每一个值再传给第二个循环中
不知道我这样说的清楚不,那就麻烦各位帮帮忙啊!
...全文
236 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
anjing5566 2009-08-06
  • 打赏
  • 举报
回复
联合查询?
如11楼的那个?
ly8199 2009-08-06
  • 打赏
  • 举报
回复
dim id, ids
ids = ""
set rs_s1 = server.createobject("ADODB.Recordset")
sql = "select * from s1"
rs_s1.open sql,conn,1,1
if not rs_s1.eof then
do while not rs_s1.eof
ids = ids & rs_s1("id")
rs_s1.movenext
if not rs_s1.eof then ids = ids & ","
loop
end if
rs_s1.close
set rs_s1 = nothing

ids = split(ids,",")

For i = LBound(ids) To UBound(ids)
set rs_s2 = server.createobject("ADODB.Recordset")
sql = "select * from s2 where sid="&ids(i)
rs_s2.open sql,conn,1,1
if not rs_s2.eof then
do while not rs_s2.eof
rs_s2("name")
rs_s2.movenext
loop
end if
rs_s2.close
set rs_s2 = nothing
Next


川娃子 2009-08-05
  • 打赏
  • 举报
回复
问题还没有解决 下面补充说一下问题
hookee 把第一个循环的每个值取出来了
但第二个循环还是没有意义 即第二个循环只执行了一次
我想要的效果是当第一个循环执行一次时第二个循环也要执行一次
就像嵌套循环一样,但我又不能做成嵌套循环 要的是效果一样
川娃子 2009-08-05
  • 打赏
  • 举报
回复
多谢了
但是你代码不完善
这里要改改ids = rs_s1("id") & ","
ids = ids & rs_s1("id") & ","
hookee 2009-08-05
  • 打赏
  • 举报
回复

dim id, ids
ids = ""
set rs_s1 = server.createobject("ADODB.Recordset")
sql = "select * from s1"
rs_s1.open sql,conn,1,1
if not rs_s1.eof then
do while not rs_s1.eof
ids = rs_s1("id") & ","
rs_s1.movenext
loop
end if
rs_s1.close
set rs_s1 = nothing

If ids <> "" Then ids = Left(ids, Len(ids)-1)

set rs_s2 = server.createobject("ADODB.Recordset")
sql = "select * from s2 where sid IN (" & ids & ")"
rs_s2.open sql,conn,1,1
if not rs_s2.eof then
do while not rs_s2.eof
rs_s2("name")
rs_s2.movenext
loop
end if
rs_s2.close
set rs_s2 = nothing
Msxindl_Com 2009-08-05
  • 打赏
  • 举报
回复
试试这个:


sql="select * from s1 inner join s2 on s1.id = s2.sid"
gxq323 2009-08-05
  • 打赏
  • 举报
回复
hookee老大的就对用in,估计是字符串没仔细拼,你仔细拼下拼成 “1,2,3 ”这种格式的
川娃子 2009-08-05
  • 打赏
  • 举报
回复
我想做两个循环使其效果和嵌套循环一样
s1表数据是
1 a
2 b
3 c
4 d
5 e
s2表数据是
001 1 a1
002 2 b2
003 3 c3
004 4 d4
005 5 e5

运行效果
a a1
b b2
c c3
d d4
e e5

在这里不用嵌套循环 怎么实现
帮帮忙啊 我都等了一天的答案了 现在还没有结果
王者coco 2009-08-05
  • 打赏
  • 举报
回复
嵌套循环有点麻烦
ly8199 2009-08-05
  • 打赏
  • 举报
回复
不知道你是要实现什么样的功能。。。。
怎么会有这种想法。。。。。

嵌套循环 不要 ,那写成 函数,调用呗。。。
ilxl520 2009-08-05
  • 打赏
  • 举报
回复

set rs_s1 = server.createobject("ADODB.Recordset")
sql = "select * from s1"
rs_s1.open sql,conn,1,1
do while not rs_s1.eof
set rs_s2 = server.createobject("ADODB.Recordset")
sql = "select * from s2 where sid="&rs_s1("id")
rs_s2.open sql,conn,1,1
do while not rs_s2.eof
rs_s2("name")
rs_s2.movenext
loop
rs_s1.movenext
loop


do while就是由判断功能的,不需要加另外加if判断
heatonc 2009-08-05
  • 打赏
  • 举报
回复
LZ想 嵌套循环?
wtg321 2009-08-05
  • 打赏
  • 举报
回复
没看明白楼主要干什么。不过可以参考一下INNOR JOIN 和LEFT JOIN 的用法。
网站建设与维护&网络程序设计 实验指导书 实验二 VBScript程序设计 一、实验目的及要求 1.了解并掌握VBScript脚本程序设计语言的基本语法知识及简单程序设计方法; 2.熟练掌握ASP环境中的输出方法; 3.熟练掌握VBScript的If语句和Select Case语句的编程技术; 4.熟练掌握VBScript的For…Next、Do…Loop和For each…In等循环语句的编程技术; 二、实验内容 ⒈ 利用VBScript在网页中输出当前的时间和日期。 ⒉ 上机验证教材上的VBScript各个函数的功能,熟悉其用法。 ⒊ 上机验证教材上的例3-1至例3-8。 ⒋ 试用VBScript编程,实现计算并输出1到10的阶乘之和。 ⒌ 试用VBScript编程,实现计算并输出100到500的之间的水仙花数(水仙花数是指该数的等于各位数字的立方和)。 ⒍ 试用VBScript编程,利用数组实现矩阵乘法。 三、实验指导 (一)VBScript函数 函数是一种特定的运算,在程序中要使用一个函数时,只要给出函数名并给出一个或多个参数,就能得到它的函数。 VBScript内部函数可分为:转换函数、字符串函数、日期和时间函数、数学函数和检验函数。 1.转换函数 VBScript对Variant变量一般会根据需要自动转换成合适的数据类型;但有时,自动转换有可能造成数据类型不匹配错误。此时,就应使用VBScript的转换函数来强制转换数据的子类型。 常用的转换函数见下表: 函数功能 CStr(Variant)将变量Variant转化为字符串类型 CDate(Variant)将变量Variant转化为日期类型 CInt(Variant)将变量Variant转化为整数类型 CLng(Variant)将变量Variant转化为长整数类型 CSng(Variant)将变量Variant转化为Single类型 CDbl(Variant)将变量Variant转化为Double类型 CBool(Variant)将变量Variant转化为布尔类型 2.字符串函数 常用字符串函数及功能如下表: 函数功能 字符串长度Len(string) 大、小写字母转换Lcase(String), Ucase(String) 截子字符串Mid(string,start[,length]) Left(string,length) Right(string,length) 删除空格Trim(string), Ltrim(string), Rtrim(string) 重复String(num1,str1) 空格Space(num1) 代字符串Replace(str1,str2,str3) 字符串拆分为1维数组Split(str1,delimiter) 返回字符串位置InStr(str1,str2) 3.时间和日期函数 函数功能 Now()得系统当前日期和时间 Date()得系统当前日期 Time()得系统当前时间 Month(Date)得给定日期的月份 Day(Date)得给定日期是几号 WeekDay(Date)得给定日期是星期几 (星期天,1到6分别为1~7) Year(Date)得给定日期的年份 DateDiff(“Var”,Var1,Var2)计算日期或时间Var1与Var2的间隔 “Var”:为时间间隔因子 DateAdd(“Var”,num,date) num:间隔倍数;date:原始日期或时间对时间/日期num作加法 FormatDateTime(Date,2)显示短日期格式 FormatDateTime(Date,1)显示长日期格式 FormatDateTime(Date,4)显示短时间格式 FormatDateTime(Date,3)显示长时间格式 4.数学函数 函数功能 Abs(number)返回一个数的绝对 Sqr(number)返回一个数的平方根 Int(number)number的最大整数部分 FormatNumber(num1,num2)将num1转化为指定小数位num2的数 Rnd()返回0到1的随机数 Ubound(数组名,维数)返回最大下标数 Lbound(数组名,维数)返回最小下标数 5.检验函数 函数功能 VarType(Variant)返回变量Variant的数据子类型 IsEmpty(Variant)检查变量Variant是否为Empty IsNull(Variant)检查变量Variant是否为Null IsObject(Variant)检查变量Variant是否为对象类型 IsNumeric(Variant)检查变量Variant是否为数类型 IsArray(Variant)检查变量Variant是否为数组类型 IsDate(Variant)检查变量Variant是否为日期类型 (二)VBScript脚本语言语句 1.条件语句 ⑴ If Then End If If 条件语句 Then 执行语句 End If ⑵ If Then Else End If(单条件) If 条件语句 Then 执行语句1 Else 执行语句2 End If ⑶ If Then Else End If(多条件) If 条件语句1 Then 执行语句1 ElseIf 条件语句2 Then 执行语句2 …….. Else 执行语句n+1 End If ⑷ Select Case 语句 Select Case 变量或表达式 Case 结果1 执行语句1 Case 结果2 执行语句2 …… Case 结果 n 执行语句n Case Else 执行语句n+1 End Select 2.循环语句 ⑴ For …… Next循环 For counter=start To end [Step number] 执行语句 Next ⑵ Do …… Loop循环 Do While 条件1 执行语句 Loop 或 Do 执行语句 Loop While 条件1 ⑶ For Each…In循环 For Each <元素> In <集合> <语句> Next 说明:对<集合>中的每一个<元素> 依次执行<语句>一次。其集合元素为离散型的。 (三)VBScript过程 在VBScript中,过程有两种:Sub子程序和Function函数。 (1) Sub子程序 ● Sub子程序的语法: Sub 子程序名(参数1,参数2,…) 语句…… End Sub ● 调用子程序 1) Call 子程序名(参数1,参数2,…) 2) 子程序名 参数1,参数2,… (2) Function函数 ● Function函数的语法: Function 函数名(参数1,参数2,…) 语句…… End Function ● 调用函数 变量= Function 函数名(参数1,参数2,…) 函数可以向变量一样引用和参与运算 (四)“显示当月日历”实例分析 该程序的运行结果为显示当月的日历,其输出形式为: ......

28,406

社区成员

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

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