2015-06-24 76 views
1

我在HTML表單中顯示查詢結果時出現問題。當我處理這段代碼時,它會在我的HTML表格中顯示空白單元格。任何提示或建議,將不勝感激。經典ASP:用HTML表格顯示查詢結果的麻煩

ASP:

<% 
dim query, myDSN, Connect, rs 

myDSN = "PROVIDER=MICROSOFT.ACE.OLEDB.12.0;DATA SOURCE=" & Server.Mappath("/MasterDB.accdb") 

query = "SELECT * FROM DAY_DATA;" 

Set Connect = Server.CreateObject("ADODB.Connection") 
Connect.Open myDSN 
Set rs = Server.CreateObject("ADODB.recordset") 
rs.Open query, Connect 
%> 

結果頁面HTML:

<table border="1" width="100%"> 
<tr> 
<%for each x in rs.Fields 
    response.write("<th>" & x.name & "</th>") 
next%> 
</tr> 
<%do until rs.EOF%> 
    <tr> 
    <%for each x in rs.Fields%> 
     <td><%Response.Write(x.value)%></td> 
    <%next 
    rs.MoveNext%> 
    </tr> 
<%loop 
rs.close 
conn.close 
%> 
</table> 

如果我能得到這個工作,我將代替查詢字符串是與它們的輸入產生一個。謝謝閱讀!

回答

1

我創造了這個功能來做到這一點的任務......希望這有助於:

Sub WriteRS(ByRef myRS) 
    Dim i, fCount 
    Response.Write ("<br><br clear=""all""><table cellspacing=1 cellpadding=5 border=1><tr>") 
    For i = 0 To myRS.Fields.Count - 1 
     Response.Write ("<td nowrap>" & myRS.Fields(i).name & "</td>" & vbNewLine) 
    Next 
    Response.Write ("</tr>" & vbNewLine) 
    If Not myRS.BOF THEN myRS.MoveFirst 
    fCount = myRS.Fields.Count 
    Do Until myRS.EOF 
     Response.Write ("<tr>" & vbNewLine) 
     For i = 0 To fCount - 1 
      Response.Write ("<td nowrap>" & CheckValue(Trim(myRS.Fields.Item(i).Value), "&nbsp;") & "</td>" & vbNewLine) 
     Next 
     Response.Write ("</tr>" & vbNewLine) 
     Response.Flush 
     myRS.MoveNext 
    Loop 
    If Not myRS.BOF THEN 
     myRS.MoveFirst 
    Else 
     Response.Write ("<tr><td colspan=""" & fCount & """>No Data Found</td</tr>" & vbNewLine) 
    End If 
    Response.Write ("</table><br clear=""all"">") 
End Sub 

希望這有助於。

+0

Thanks!正是我需要的。 – Diogenes

+0

很高興幫助!如果它確實回答了你的問題,請記住這是答案,所以我們沒有人試圖在將來修復它。 – CLaFarge

0

嘗試用rs(x.name)代替x.value

<%do until rs.EOF%> 
    <tr> 
    <%for each x in rs.Fields%> 
    <td><%=rs(x.Name)%></td> 
    <%next 
    rs.MoveNext%> 
    </tr> 
<%loop%> 

如果x.Name不返回任何東西,無論是(即你沒有看到在你的表中的列名),嘗試用遊標類型和鎖定類型擺弄。

rs.Open query, Connect, 1, 2 
+0

不幸的是,這沒有奏效。感謝您的提示,但! – Diogenes

+0

@Diogenes:你確定它是不工作的顯示代碼?即你確定你正確地連接到數據庫嗎?在'rs.Open'行的末尾添加',1,2',然後執行'Response.Write rs.RecordCount'。 – Martha

+0

我已經將頁面鏈接到adovbs.inc文件,所以不應該是一個問題。 – Diogenes