Variables 循环遍历列名并将它们放入变量中。ASP
我需要能够循环遍历列名,并将列名及其值放入变量中。我的代码看起来像这样Variables 循环遍历列名并将它们放入变量中。ASP,variables,loops,asp-classic,Variables,Loops,Asp Classic,我需要能够循环遍历列名,并将列名及其值放入变量中。我的代码看起来像这样 SQL = "select column1, column2 from table1" set rs = conn.execute(SQL) For each fld in rs.fields fld.name = rs(fld.name) Next rs.close 但这是行不通的。如何在不必指定每个列名的情况下循环列名并将其设置为变量 谢谢 我认为你应该使用这种方法。返回二维数组。通过GetRows不需要列
SQL = "select column1, column2 from table1"
set rs = conn.execute(SQL)
For each fld in rs.fields
fld.name = rs(fld.name)
Next
rs.close
但这是行不通的。如何在不必指定每个列名的情况下循环列名并将其设置为变量
谢谢
我认为你应该使用这种方法。返回二维数组。通过GetRows不需要列名。
考虑这一点:
SQL=“从表1中选择列1、列2”
设置rs=conn.execute(SQL)
arrRecs=rs.GetRows
对于行=0到UBound(arrRecs,2)'行
对于col=0到UBound(arrRecs,1)“列
响应。写入rs.Fields(col).Name&“=”&arrRecs(col,row)&”
下一个
响应。写“
”
下一个
克洛斯
我认为你应该使用这种方法。返回二维数组。通过GetRows不需要列名。
考虑这一点:
SQL=“从表1中选择列1、列2”
设置rs=conn.execute(SQL)
arrRecs=rs.GetRows
对于行=0到UBound(arrRecs,2)'行
对于col=0到UBound(arrRecs,1)“列
响应。写入rs.Fields(col).Name&“=”&arrRecs(col,row)&”
下一个
响应。写“
”
下一个
克洛斯
如果要存储字段名,可以使用字典,将每个字段名作为键,然后将每列的值作为数组
首先,把字典翻成十行:
Set oData = Server.CreateObject("Scripting.Dictionary")
现在,使用这两个循环使用数据填充它:
For Each fld In rs.Fields
oData.Add fld.Name, Array()
Next
Do Until rs.EOF
For Each fld In rs.Fields
tempArray = oData(fld.Name)
ReDim Preserve tempArray(UBound(tempArray) + 1)
tempArray(UBound(tempArray)) = rs(fld.Name)
oData(fld.Name) = tempArray
Next
rs.MoveNext
Loop
最后,您可以使用以下代码显示所有列名:
Response.Write("Column names:<br />")
For Each fld In oData.Keys
Response.Write(fld & " ")
Next
Response.Write("<br />")
Response.Write(“列名:
”)
对于oData.键中的每个fld
响应.写入(fld&“”)
下一个
响应。写入(“
”)
或显示特定列的值:
Response.Write("Values for column named Id:<br />")
If oData.Exists("Id") Then
tempArray = oData("Id")
For x=0 To UBound(tempArray)
Response.Write(tempArray(x) & "<br />")
Next
Else
Response.Write("Such column does not exist")
End If
Response.Write(“名为Id的列的值:
”)
如果oData.存在(“Id”),则
tempArray=oData(“Id”)
对于x=0到UBound(tempArray)
响应.写入(临时数组(x)和“
”)
下一个
其他的
响应。写入(“该列不存在”)
如果结束
如果要存储字段名,可以使用字典,将每个字段名作为键,然后将每列的值作为数组
首先,把字典翻成十行:
Set oData = Server.CreateObject("Scripting.Dictionary")
现在,使用这两个循环使用数据填充它:
For Each fld In rs.Fields
oData.Add fld.Name, Array()
Next
Do Until rs.EOF
For Each fld In rs.Fields
tempArray = oData(fld.Name)
ReDim Preserve tempArray(UBound(tempArray) + 1)
tempArray(UBound(tempArray)) = rs(fld.Name)
oData(fld.Name) = tempArray
Next
rs.MoveNext
Loop
最后,您可以使用以下代码显示所有列名:
Response.Write("Column names:<br />")
For Each fld In oData.Keys
Response.Write(fld & " ")
Next
Response.Write("<br />")
Response.Write(“列名:
”)
对于oData.键中的每个fld
响应.写入(fld&“”)
下一个
响应。写入(“
”)
或显示特定列的值:
Response.Write("Values for column named Id:<br />")
If oData.Exists("Id") Then
tempArray = oData("Id")
For x=0 To UBound(tempArray)
Response.Write(tempArray(x) & "<br />")
Next
Else
Response.Write("Such column does not exist")
End If
Response.Write(“名为Id的列的值:
”)
如果oData.存在(“Id”),则
tempArray=oData(“Id”)
对于x=0到UBound(tempArray)
响应.写入(临时数组(x)和“
”)
下一个
其他的
响应。写入(“该列不存在”)
如果结束
使用上述代码,并将名称/值对存储在会话中,如会话(“table.”&fieldname)=rs(fieldname)。我经常使用它来存储用户、客户、供应商等信息。它也像缓存一样工作。您可以创建子例程,如重新加载客户(customerNumber)以重新加载。这样,您就不会去数据库获取基本信息。更改时更新它
字典对象:
set dic = server.createobject("scripting.dictionary")
dic.add "keyName1", "Michael"
dic.add "keyName2", "John"
dic.add "keyName3", "Steve"
dic.Item("keyName2") <-- gives you "John"
set dic=server.createobject(“scripting.dictionary”)
dic.添加“keyName1”、“Michael”
dic.添加“keyName2”、“John”
dic.添加“keyName3”、“Steve”
dic.Item(“keyName2”)使用上述代码,并将名称/值对存储在会话中,如会话(“table.”&fieldname)=rs(fieldname)。我经常使用它来存储用户、客户、供应商等信息。它也像缓存一样工作。您可以创建子例程,如重新加载客户(customerNumber)以重新加载。这样,您就不会去数据库获取基本信息。更改时更新它
字典对象:
set dic = server.createobject("scripting.dictionary")
dic.add "keyName1", "Michael"
dic.add "keyName2", "John"
dic.add "keyName3", "Steve"
dic.Item("keyName2") <-- gives you "John"
set dic=server.createobject(“scripting.dictionary”)
dic.添加“keyName1”、“Michael”
dic.添加“keyName2”、“John”
dic.添加“keyName3”、“Steve”
dic.Item(“keyName2”)这很好,但我需要将返回的值放入变量中,以便在我的页面上重用它们。这很好,但我需要将返回的值放入变量中,以便在我的页面上重用它们。嗨,Michael,我不能使用会话,因为我将使用IIS实现Web Garden。我需要能够将这些值存储在标准变量中,并在页面中本地重用它们。然而,我曾经遇到过这样的错误,当我抓起一把钥匙时,它也会把它取下来——不确定这是出于设计,还是一个错误。如上所述…嗨,Michael,我不能使用会话,因为我将用IIS实现Web Garden。我需要能够将这些值存储在标准变量中,并在页面中本地重用它们。然而,我曾经遇到过这样的错误,当我抓起一把钥匙时,它也会把它取下来——不确定这是出于设计,还是一个错误。见上文。。。