فهرست سرفصل‌های ASP
خانه (HOME) معرفی (WebPages Intro) ریزر (WebPages Razor) چیدمان (WebPages Layout) پوشه ها (WebPages Folders) گلوبال (WebPages Global) فرم ها (WebPages Forms) اشیا (WebPages Objects) فایل ها (WebPages Files) پایگاه داده ها (WebPages Databases) هلپرها (WebPages Helpers) وب گرید (WebPages WebGrid) نمودارها (WebPages Charts) ایمیل (WebPages Email) امنیت (WebPages Security) انتشار (WebPages Publish) نمونه ها (WebPages Examples) کلاس ها (WebPages Classes) معرفی (Razor Intro) سینتکس (Razor Syntax) متغیرها (Razor C# Variables) حلقه ها (Razor C# Loops) منطق (Razor C# Logic) متغیرها (Razor VB Variables) حلقه ها (Razor VB Loops) منطق (Razor VB Logic) معرفی (ASP Intro) سینتکس (ASP Syntax) متغیرها (ASP Variables) رویه ها (ASP Procedures) شرط ها (ASP Conditionals) حلقه ها (ASP Looping) فرم ها (ASP Forms) کوکی ها (ASP Cookies) نشست (ASP Session) برنامه (ASP Application) اینکلود (#include) (ASP #include) Global.asa (ASP Global.asa) AJAX (ASP AJAX) ایمیل (ASP e-mail) نمونه ها (ASP Examples) گواهینامه (ASP Certificate) توابع VB (ASP VB Functions) کلیدواژه های VB (ASP VB Keywords) Response (ASP Response) Request (ASP Request) Application (ASP Application) Session (ASP Session) Server (ASP Server) Error (ASP Error) FileSystem (ASP FileSystem) TextStream (ASP TextStream) Drive (ASP Drive) File (ASP File) Folder (ASP Folder) Dictionary (ASP Dictionary) AdRotator (ASP AdRotator) BrowserCap (ASP BrowserCap) پیوند محتوا (ASP Content Linking) گرداننده محتوا (ASP Content Rotator) راهنمای سریع (ASP Quick Ref) معرفی (ADO Intro) اتصال (ADO Connect) رکوردست (ADO Recordset) نمایش (ADO Display) کوئری (ADO Query) مرتب سازی (ADO Sort) افزودن (ADO Add) به روزرسانی (ADO Update) حذف (ADO Delete) فرمان (ADO Command) اتصال (ADO Connection) خطا (ADO Error) فیلد (ADO Field) پارامتر (ADO Parameter) ویژگی (ADO Property) رکورد (ADO Record) رکوردست (ADO Recordset) جریان (ADO Stream) انواع داده (ADO DataTypes)
نتیجه‌ای برای جستجو یافت نشد.
ASP

ASP — کوئری (ADO Query)

آخرین بروزرسانی: 1404/08/14

کوئری (ADO Query)

در این بخش «کوئری ADO» را یاد می گیریم. «کوئری (Query)» یعنی درخواست داده با شرط. «SQL» زبان پرس وجو است. مثل فیلتر کردن لیست دانش آموزان بر اساس حرف اول نام.

نمایش داده انتخابی با شرط شروع نام

اینجا شرکت هایی را می خواهیم که نامشان با A شروع می شود. اول اتصال بده. سپس با SQL فیلتر کن. بعد جدول را بساز.

<%
  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 WHERE CompanyName LIKE 'A%'"
  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
%>

مشاهده در ادیتور

فیلتر کشور ثابت: فقط مشتریان اسپانیا

حالا فقط کشور Spain را نشان می دهیم. شرط برابر می گذاریم. سپس مانند قبل جدول می سازیم.

<%
  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 WHERE Country='Spain'"
  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
%>

مشاهده در ادیتور

ساخت فیلتر پویا توسط کاربر

می خواهیم کاربر کشور را انتخاب کند. اول لیست کشورها را می گیریم. سپس با ارسال فرم، جدول نتیجه را می سازیم.

<%
  Dim conn3
  Dim rs3
  Dim country
  Dim sqlList
  Set conn3 = Server.CreateObject("ADODB.Connection")
  conn3.Provider = "Microsoft.Jet.OLEDB.4.0"
  conn3.Open "c:/webdata/northwind.mdb"
  sqlList = "SELECT DISTINCT Country FROM Customers ORDER BY Country"
  Set rs3 = Server.CreateObject("ADODB.Recordset")
  rs3.Open sqlList, conn3
  country = Request.Form("country")
%>
<form method="post">
  انتخاب کشور
  <select name="country">
    <% Do Until rs3.EOF %>
      <% If rs3.Fields("Country") = country Then %>
        <option selected><% = rs3.Fields("Country") %></option>
      <% Else %>
        <option><% = rs3.Fields("Country") %></option>
      <% End If %>
      <% rs3.MoveNext %>
    <% Loop %>
  </select>
  <input type="submit" value="Show customers" />
</form>
<%
  rs3.Close
  If country <> "" Then
    Dim rs4
    Dim sqlData
    sqlData = "SELECT CompanyName, ContactName, Country FROM Customers WHERE Country='" & country & "'"
    Set rs4 = Server.CreateObject("ADODB.Recordset")
    rs4.Open sqlData, conn3
%>
<table width="100%" cellspacing="0" cellpadding="2" border="1">
  <tr>
    <th>CompanyName</th>
    <th>ContactName</th>
    <th>Country</th>
  </tr>
  <% Do Until rs4.EOF %>
    <tr>
      <td><% = rs4.Fields("CompanyName") %></td>
      <td><% = rs4.Fields("ContactName") %></td>
      <td><% = rs4.Fields("Country") %></td>
      <% rs4.MoveNext %>
    </tr>
  <% Loop %>
</table>
<%
    rs4.Close
  End If
  conn3.Close
%>

مشاهده در ادیتور

گام های عملی

  1. اتصال ADO بساز. مسیر دیتابیس درست باشد.
  2. SQL بنویس. شرط مناسب را اضافه کن.
  3. رکوردست را باز کن. تا آخر حلقه بزن.
  4. هدر و سطرها را چاپ کن. مرتب و خوانا.
  5. منابع را ببند. حافظه را آزاد کن.

نکته: «فیلتر (Filter)» یعنی محدود کردن نتایج با شرط مشخص.

هشدار: برای امنیت فرم، از پارامترسازی استفاده کن. از اتصال رشته ای خام پرهیز کن.

برای ادامه، صفحه نمایش داده ADO و بخش مرتب سازی ADO را ببین.

جمع بندی سریع

  • کوئری ADO با SQL فیلتر می کند.
  • LIKE برای الگوها کاربرد دارد.
  • شرط برابر، انتخاب دقیق می دهد.
  • فرم، فیلتر پویا می سازد.
  • همیشه اتصال ها را ببند.