经典Asp从数据库中提取数据

时间:2012-11-15 20:34:39

标签: asp-classic

我在使用asp脚本从数据库中获取数据时遇到问题,运行下面的代码后我只是有一个空白页面。有人可以帮忙吗?

<% Response.Buffer = True %>
<% Response.Expires = 0%>
<!--#include file="dsn.inc"-->

<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Search Results</title>
</head>

<body>
<font face="Arial Narrow">
<%
Set rst = Server.CreateObject("ADODB.Recordset")

If LCase(Request("clearsql")) = "y" Then




        strSQL = "SELECT * from npic.dbo.LMSWeb"


    Session("sql") = strSQL



Else

    strSQL = Session("sql")

End If

rst.Open strSQL, strDSN

%>


<table border="1" width="100%">
<tr>
<td align="center" width="212"><font face="Arial Narrow"><b>Agent Name </b>
</font></td>
<td align="center" width="140"><b><font face="Arial Narrow">Sup</font></b><font
face="Arial Narrow"><b> Name </b>
</font></td>
<td align="center"><font face="Arial Narrow"><b>Date</b></font></td>
<td align="center"><font face="Arial Narrow"><b>Points</b></font></td>
<td align="center">&nbsp;</td>
</tr>
<%

Dim strError

Do While Not rst.EOF

Response.Write "<tr>" & Chr(10)
Response.Write "    <td>" & rst("agent name") & "</td>" & Chr(10)
Response.Write "    <td>" & rst("sup") & "</td>" & Chr(10)
Response.Write "    <td>" & rst("date") & "</td>" & Chr(10)
Response.Write "    <td>" & rst("points") & "</td>" & Chr(10)


Response.Write "</tr>" & Chr(10)
rst.MoveNext
loop

rst.Close
Set rst=Nothing

%>
</table>
</center></div>


</body>
</html>

我在使用asp脚本从数据库中获取数据时遇到问题,运行上面的代码后,我只是有一个空白页面。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

从经典ASP开始已经有一段时间了,但我认为这样可行:

<% Response.Buffer = True %>
<% Response.Expires = 0 %>
<!--#include file="dsn.inc"-->
<html>
<head>
    <meta http-equiv="Content-Language" content="en-us">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta name="GENERATOR" content="Microsoft FrontPage 6.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>Search Results</title>
</head>
<body>
    <font face="Arial Narrow">
<%
Dim conn

Set rst = Server.CreateObject("ADODB.Recordset")
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open yourConnectionStringHere

If LCase(Request("clearsql")) = "y" Then
    strSQL = "SELECT * npic.dbo.LMSWeb"
    Session("sql") = strSQL
Else
    strSQL = Session("sql")
End If

Set rst = conn.Execute(strSQL) 'Typo was on this line
%>
    <table border="1" width="100%" style="font-family: Arial Narrow;">
        <thead>
            <tr>
                <th width="212">Agent Name</th>
                <th width="140">Sup Name</th>
                <th>Date</th>
                <th>Points</th>
                <th>&nbsp;</th>
            </tr>
        <thead>
        <tbody>
<%
Dim strError

If rst.BOF And rst.EOF Then
    ' No data
Else
    Do While (Not rst.EOF)
        Response.Write "<tr>" & Chr(10)
        Response.Write "    <td>" & rst(0) & " " & rst(1) & "</td>" & vbCrLf
        Response.Write "    <td>" & rst(2) & "</td>" & vbCrLf
        Response.Write "    <td>" & rst(3) & "</td>" & vbCrLf
        Response.Write "    <td>" & rst(4) & "</td>" & vbCrLf
        Response.Write "</tr>" & vbCrLf
        rst.MoveNext
    Loop
End If

rst.Close
conn.close

Set conn = Nothing
Set rst = Nothing
%>
        </tbody>
    </table>
</body>
</html>

我冒昧地将HTML更新为稍微更现代的语法,因为当{4}点击场景时<font>标签超出了style(双关语),你明确想要的是一个表头部分。

答案 1 :(得分:0)

我注意到在初始化之前你没有声明你的rst和strSQL变量(例如Dim rst,strSQL)。我在下面添加了它们。

<% Response.Buffer = True %>
<% Response.Expires = 0%>
<!--#include file="dsn.inc"-->

<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Search Results</title>
</head>

<body>
<font face="Arial Narrow">
<%
Dim rst, strSQL
Set rst = Server.CreateObject("ADODB.Recordset")

If LCase(Request("clearsql")) = "y" Then




        strSQL = "SELECT * from npic.dbo.LMSWeb"


    Session("sql") = strSQL



Else

    strSQL = Session("sql")

End If

rst.Open strSQL, strDSN

%>


<table border="1" width="100%">
<tr>
<td align="center" width="212"><font face="Arial Narrow"><b>Agent Name </b>
</font></td>
<td align="center" width="140"><b><font face="Arial Narrow">Sup</font></b><font
face="Arial Narrow"><b> Name </b>
</font></td>
<td align="center"><font face="Arial Narrow"><b>Date</b></font></td>
<td align="center"><font face="Arial Narrow"><b>Points</b></font></td>
<td align="center">&nbsp;</td>
</tr>
<%

Dim strError

Do While Not rst.EOF

Response.Write "<tr>" & Chr(10)
Response.Write "    <td>" & rst("agent name") & "</td>" & Chr(10)
Response.Write "    <td>" & rst("sup") & "</td>" & Chr(10)
Response.Write "    <td>" & rst("date") & "</td>" & Chr(10)
Response.Write "    <td>" & rst("points") & "</td>" & Chr(10)


Response.Write "</tr>" & Chr(10)
rst.MoveNext
loop

rst.Close
Set rst=Nothing

%>
</table>
</center></div>


</body>
</html>