在过去一周左右的时间里,我一直在研究这个脚本,并且我在尝试理解为什么它不能正常工作时遇到了重大问题。
我有一些复选框链接到电子邮件地址,我需要的是相应的用户名与该电子邮件一起使用。此脚本适用于已注册不同新闻简报的用户。
这是我的编码
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中产生所有结果,除了名字!!!!!
答案 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)
如果您在输出网页上“查看来源”,该怎么办?有时候我遇到了一些我看不到的错误,因为它看起来像是渲染器默默忽略的无效标记。