مرتب سازی (ADO Sort)
اینجا «مرتب سازی ADO» را می بینیم. «مرتب سازی (Sort)» یعنی چیدن نتایج طبق یک ستون. «SQL ORDER BY» دستور مرتب سازی است. مثل مرتب کردن لیست کلاس بر اساس نام.
مرتب سازی صعودی بر اساس CompanyName
می خواهیم CompanyName و ContactName را بگیریم. سپس بر اساس CompanyName صعودی بچینیم.
<%
Dim conn
Dim rs
Dim x
Dim sql
Set conn = Server.CreateObject("ADODB.Connection")
conn.Provider = "Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
Set rs = Server.CreateObject("ADODB.Recordset")
sql = "SELECT CompanyName, ContactName FROM Customers ORDER BY CompanyName"
rs.Open sql, conn
%>
<table border="1" width="100%">
<tr>
<% For Each x In rs.Fields %>
<th><% Response.Write x.Name %></th>
<% Next %>
</tr>
<% Do Until rs.EOF %>
<tr>
<% For Each x In rs.Fields %>
<td><% Response.Write x.Value %></td>
<% Next %>
<% rs.MoveNext %>
</tr>
<% Loop %>
<%
rs.Close
conn.Close
%>
مرتب سازی نزولی با ORDER BY ... DESC
حالا همان ستون را نزولی می چینیم. DESC یعنی از بزرگ به کوچک.
<%
Dim conn2
Dim rs2
Dim y
Dim sql2
Set conn2 = Server.CreateObject("ADODB.Connection")
conn2.Provider = "Microsoft.Jet.OLEDB.4.0"
conn2.Open "c:/webdata/northwind.mdb"
Set rs2 = Server.CreateObject("ADODB.Recordset")
sql2 = "SELECT CompanyName, ContactName FROM Customers ORDER BY CompanyName DESC"
rs2.Open sql2, conn2
%>
<table border="1" width="100%">
<tr>
<% For Each y In rs2.Fields %>
<th><% Response.Write y.Name %></th>
<% Next %>
</tr>
<% Do Until rs2.EOF %>
<tr>
<% For Each y In rs2.Fields %>
<td><% Response.Write y.Value %></td>
<% Next %>
<% rs2.MoveNext %>
</tr>
<% Loop %>
<%
rs2.Close
conn2.Close
%>
گام های عملی سریع
- اتصال بده. مسیر دیتابیس درست باشد.
- SELECT بنویس. ستون های لازم را انتخاب کن.
- ORDER BY اضافه کن. جهت را مشخص کن.
- رکوردست را چاپ کن. هدرها را بساز.
- منابع را ببند. نشت نده.
نکته: برای چند ستون، آن ها را با ویرگول بنویس. سپس ترتیب مهم می شود.
هشدار: نام ستون را درست بنویس. غلط املایی خطا می دهد.
برای ادامه، صفحه کوئری ADO و درس افزودن رکورد ADO را ببین. همچنین از «مرتب سازی ADO» به عنوان لنگر در صفحات مرتبط استفاده کن.
جمع بندی سریع
- ORDER BY مرتب سازی را انجام می دهد.
- ASC پیش فرض است.
- DESC نزولی می چیند.
- چند ستون هم قابل استفاده است.
- همیشه منابع را ببند.