SQL将返回2值,但是当我在经典ASP页面上运行时
我的输出返回为 发送日期电子邮件 电子邮件 发送日期电子邮件 电子邮件 哪里不对了?这里的语法是什么?
<%
'declare the variables
Dim Connection
Dim ConnString
Dim Recordset
Dim SQL
'define the connection string, specify database driver
ConnString="Driver={SQL Server};Server=10.0.0.96;Database=VISTAIT;Uid=sa;Pwd=CqLxxxx1;"
'declare the SQL statement that will query the database
SQL = "SELECT OrderH_dtmInitiated,OrderH_strEmailConfirmationSent ,OrderH_strEmail FROM tblOrderHistory WHERE OrderH_strEmailConfirmationSent is NULL And OrderH_dtmInitiated >= (SELECT DATEADD(dd, 0, DATEDIFF(dd, 0, GETDATE()-1))) ORDER by OrderH_dtmInitiated"
'create an instance of the ADO connection and recordset objects
Set Connection = Server.CreateObject("ADODB.Connection")
Set Recordset = Server.CreateObject("ADODB.Recordset")
'Open the connection to the database
Connection.Open ConnString
'Open the recordset object executing the SQL statement and return records
Recordset.Open SQL,Connection
'first of all determine whether there are any records
If Recordset.EOF Then
Response.Write("No records returned.")
Else
'if there are records then loop through the fields
Do While NOT Recordset.Eof
Response.write "<br>"
Response.Write("Date " &OrderH_dtmInitiated )
Response.Write("Email Sent " &OrderH_strEmailConfirmationSent)
Response.write "<br>"
Response.Write("Email " &OrderH_strEmail)
Response.write "<br>"
Recordset.MoveNext
Loop
End If
'close the connection and recordset objects to free up resources
Recordset.Close
Set Recordset=nothing
Connection.Close
Set Connection=nothing
%>
答案 0 :(得分:1)
假设记录集HAS 2记录。
然后循环内的response.writes不应该写未声明的ASP变量,而是记录集对象的元素。正确的编码应该是
Response.Write("Date " & Recordset("OrderH_dtmInitiated") )
Response.Write("Email Sent " & Recordset("OrderH_strEmailConfirmationSent"))
Response.write "<br>"
Response.Write("Email " & Recordset("OrderH_strEmail"))