SQL和ASP帮助!

时间:2010-07-26 23:09:23

标签: sql-server asp-classic

在过去一周左右的时间里,我一直在研究这个脚本,并且我在尝试理解为什么它不能正常工作时遇到了重大问题。

我有一些复选框链接到电子邮件地址,我需要的是相应的用户名与该电子邮件一起使用。此脚本适用于已注册不同新闻简报的用户。

这是我的编码

Set conn = Server.CreateObject("ADODB.Connection")
conn.open connStr

emails = Request("emaillist")

emails = Replace( emails, "'", "''" )
emails = Replace( emails, ", ", "','" )

strSQL = "SELECT name, email FROM emails WHERE email IN ('" & emails & "')"
Set rs = conn.Execute(strSQL)

namesAndEmails = rs.GetRows()
rs.close

for lnRowCounter = 0 To Ubound(namesAndEmails,2) 
For lnColumnCounter = 0 To Ubound(namesAndEmails,1)
Response.Write namesAndEmails(lnColumnCounter, lnRowCounter)
Response.write "</P>"
Next
Next

这是整个脚本的一部分,我已经改变了一下,并包含了for ... next用于调试。

现在针对这个问题,如SELECT语句'name,email'所示,结果完全忽略了电子邮件,只给了我姓名。

我已经直接尝试了SQL语句,它完美地显示了名称和电子邮件,但不在我的ASP页面中。我甚至试过把*放在它的位置。

strSQL = "SELECT * FROM emails WHERE email IN ('" & emails & "')"

将从数据库中返回用户ID,名称和其他一些项目,但不会返回名称和电子邮件,为什么?????

它是带有SQL Server数据库的asp

此致

瑞克

测试结果

strSQL设置为此值时的值:

SELECT name, email 
FROM emails 
WHERE email IN ('test@test.com','test1@test1.com') 

这在SQL中会给我以下答案

name | email 
jo   | test@test.com 
fred | test1@test1.com 

在asp中,答案将是

test@test.com 
test1@test1.com 

我无法弄清楚为什么在SQL中它会显示名称和电子邮件,但在ASP中它只显示电子邮件而不是名称。

我甚至尝试过

strSQL = "SELECT * FROM emails WHERE email IN ('test@test.com','test1@test1.com')

这将在ASP中产生所有结果,除了名字!!!!!

4 个答案:

答案 0 :(得分:1)

我可能不会完全理解这一点,但如果你想要做的就是输出一个包含各自电子邮件地址的名字列表,你可以尝试简化这个:

name = rs("name")
email = rs("email")

do while rs.eof <> true
    response.write(name & " " & email & "<br />")
    rs.movenext
loop

......至少是出于测试目的。或者,您可以将SQL语句中的名称和电子邮件连接到一列:

SELECT name + '|' + email as nameemail FROM emails WHERE email IN ('" & emails & "')

...将为您提供“名称|电子邮件”,您可以轻松地进行字符串操作。

答案 1 :(得分:0)

我不是百分百肯定,但我想你必须交换ubound()的rank参数

for lnRowCounter = 0 To Ubound(namesAndEmails, 1
对于lnColumnCounter = 0到Ubound(namesAndEmails, 2

答案 2 :(得分:0)

尝试

For i = LBound(namesAndEmails, 2) To UBound(namesAndEmails , 2)
    Name = namesAndEmails(0, i)
    Email = namesAndEmails(1, i)
    Response.Write Name & " " & Email
Next

答案 3 :(得分:0)

如果您在输出网页上“查看来源”,该怎么办?有时候我遇到了一些我看不到的错误,因为它看起来像是渲染器默默忽略的无效标记。