作者sqb021 (白色巨塔)
看板Visual_Basic
标题[ASP ] 关於WHILE RD .READ()问题
时间Sat Dec 18 13:24:07 2010
大家好,想请教一些问题
最近在练习怎麽使用 while rd.read()读取资料库的内容
让它呈现树状结构
我想要让它呈现
人-a-1
2
3
b-1
2
3
c-1
2
3
里面的人 及a.b.c及1.2.3,都必须从资料库读取的内容,进行动态显示
我现在已经做到 a 这些子层後面都能够顺利列出资料库的内容
b
C
现在问题在於 母层人的部份,若他未加入子层,可以顺利列出资料库的人名
但若加入子层,却无法顺利列出资料库的人名
反而只会出现第一个人名之後,後面的人名就不会再出现了
我附上我的程式码,请大家帮我看一下,感谢!!!
<%
dim Provider as string '资料库提供者
dim DataSource as string '资料来源变数
dim conn as OleDbConnection '资料连结
dim sql as string 'sql语法
dim sql2 as string 'sql语法
dim cmd as OleDbCommand '资料库连接
dim cmd1 as OleDbCommand '资料库连接
dim cmd2 as OleDbCommand '资料库连接
dim rd as OleDbDataReader '资料库读取
dim rd1 as OleDbDataReader '资料库读取
dim rd2 as OleDbDataReader '资料库读取
dim count
dim i
'连结资料库
Provider = "Provider=Microsoft.Jet.OLEDB.4.0"
DataSource = "Data Source=" & server.MapPath("lovetree.mdb")
conn = new OleDbConnection(Provider & ";" & DataSource)
conn.open
sql="select 演员 from 演员"
cmd = new Oledbcommand(sql,conn)
rd= cmd.ExecuteReader()
response.write("<table border=0>")
count=0
while rd.read()
count=count+1
end while
sql="select 演员 from 演员"
cmd = new Oledbcommand(sql,conn)
rd= cmd.ExecuteReader()
while rd.read()
while rd.read()
i=1
while rd.read()
if i=1 then
response.write("</br>")
response.write("┌" & rd("演员") & "</br>")
else if i=count
'response.write("bug")
response.write("└" & rd("演员") & "</br>")
else
response.write("│" & rd("演员") & "</br>")
end if
i=i+1
end while
sql="select 演员,类型,名称 from 演员 where 类型 like '%戏剧%'"
cmd = new Oledbcommand(sql,conn)
rd= cmd.ExecuteReader()
response.write("<table border=0>")
count=0
while rd.read()
count=count+1
end while
sql="select 演员,类型,名称 from 演员 where 类型 like '%戏剧%'"
cmd = new Oledbcommand(sql,conn)
rd= cmd.ExecuteReader()
i=1
while rd.read()
if i=1 then
response.write(" " & "┬" & "戏剧作品"&"</br>")
response.write(" " & "├"&"─" & rd("名称") & "</br>")
else if i=count
response.write(" " & "└" & "─" & rd("名称") & "</br>")
else
response.write(" " & "├" & "─" & rd("名称") & "</br>")
end if
i=i+1
end while
end while
end while
conn.close
%>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 120.127.47.23
1F:→ hjt00:看不太懂你的问题,不过你都用同一个datareader,又用while 12/20 18:12
2F:→ hjt00:当下面的reader跑完的时候,前面也没得用了。所以你只会出现 12/20 18:13
3F:→ hjt00:最前面的人名一次。 12/20 18:13