[ASP ] 關於ASPX WHILE RD .READ()資料庫讀取迴圈問題

看板Visual_Basic作者 (白色巨塔)時間14年前 (2010/12/18 13:24), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/1
大家好,想請教一些問題 最近在練習怎麼使用 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

12/20 18:12, , 1F
看不太懂你的問題,不過你都用同一個datareader,又用while
12/20 18:12, 1F

12/20 18:13, , 2F
當下面的reader跑完的時候,前面也沒得用了。所以你只會出現
12/20 18:13, 2F

12/20 18:13, , 3F
最前面的人名一次。
12/20 18:13, 3F
文章代碼(AID): #1D34LwCO (Visual_Basic)
文章代碼(AID): #1D34LwCO (Visual_Basic)