sql命令不在经典的asp循环中工作

时间:2011-09-23 19:19:56

标签: html sql asp-classic vbscript while-loop

我有一个sql查询,用id对行进行排序,但是在经典的asp中它似乎没有按顺序输出数据:

sSQL = "SELECT * FROM a ORDER BY ID DESC"
Set RS = ConnStr.Execute(sSQL)

<% DO WHILE NOT RS.EOF %> <td>
<br><p class='h1'>
<%=RS("ID")%>-
<%=RS("Title")%></p>
<% RS.MoveNext

Loop %> 

数据库:

ID  Title
1    car
2    tree
3    dog

错误的asp输出:

ID 
2
3
1

2 个答案:

答案 0 :(得分:3)

我的同伴StackOverflowers,让我对OPs背景进行理论化。它是在黑暗中拍摄的,有一点点经验。考虑这个数据结构:

declare  @mytable table (ID varchar(5))

insert into @mytable (ID) values
(' 1'), ('2'), (' 3')

select * from @mytable
order by ID desc

注意1和3之前的空格。结果:

ID
2
 3
 1

由于浏览器无法在视觉上呈现空白空间,因此OP可能没有看到它们,但它们可能在HTML中。

这是我能想到ORDER BY <field> DESC“显然会失败”的唯一方法。

答案 1 :(得分:1)

想通了。但不确定它为什么会起作用。我打开了

< td >

我永远不会在循环中关闭的标签。为什么这会导致订单被取消?