【发布时间】:2010-07-26 23:09:23
【问题描述】:
我在过去一周左右一直在编写这个脚本,但我在试图理解为什么它不能正常工作时遇到了重大问题。
我有一些复选框链接到电子邮件地址,我只需要相应的用户名与该电子邮件一起使用。此脚本适用于已注册不同时事通讯的用户。
这是我的代码
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'所示,结果完全忽略了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
答案是
test@test.com
test1@test1.com
我不明白为什么在 SQL 中它会显示姓名和电子邮件,但在 ASP 中它只会显示电子邮件而不显示姓名。
我试过了
strSQL = "SELECT * FROM emails WHERE email IN ('test@test.com','test1@test1.com')
这将在 ASP 中产生除名称以外的所有结果!!!!!
【问题讨论】:
-
您的 strSQL 作业中电子邮件的价值是什么?是否有多个(逗号分隔)电子邮件值?能否将
emails替换后提交给SQL Server 的SELECT 语句提供给我们。 -
如果您尝试 'select name as SomeName , ....' 会发生什么(即给 name anothor fieldname )?
-
你能告诉我们你的 emails 表的表定义(数据类型和列长度)吗?最简单的方法是在 SQL Management Studio 中右键单击表,将表编写为脚本,创建并粘贴到您的问题中。