经典 ASP 如何引用我用 LEFT 更改的字段

Classic ASP How to refer to a field I altered with LEFT

我试图从我的数据库中的 table 中获取一列左侧的 7 个字符,以及第二列的全部内容。我用来执行此操作的代码如下所示(减去连接字符串,不想泄露)。

Set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "myConnectionString"
Set rs=Server.CreateObject("ADODB.Recordset")

rs.Open "SELECT DISTINCT LEFT(Location,7), StopID FROM LocStop", conn

do until rs.eof
    Response.Write(rs("Location"))
    Response.Write(rs("StopID"))
    rs.movenext
loop

这给出了错误“ADODB.Recordset error '800a0cc1' 在与请求的名称或序号对应的集合中找不到项目。”在行 Response.Write(rs("Location")) 上。使用 rs.fields("Location") 以同样的方式失败

当我 运行 没有 LEFT 调用的这段代码工作正常。我的猜测是,当我在其上使用 LEFT 时,列名 Location 要么未被采用,要么被更改。我不知道我现在应该如何获得这些信息。有谁知道我的猜测是否正确,以及如何获得我需要的信息?

几种方式:

  • 给它一个别名:

    SELECT DISTINCT LEFT(Location,7) as Location, StopID 
    FROM LocStop
    

    然后使用别名引用它:

    Response.Write(rs("Location"))
    
  • 或者您可以通过其索引引用它:(字段名称无关紧要)

    Response.Write(rs(0))