方法: ページのクエリ結果パフォーマンスを向上させる

文書翻訳 文書翻訳
文書番号: 318131
すべて展開する | すべて折りたたむ

目次

概要

この資料では、ページングを実装する方法についてのガイドラインを提供します。ここでは、ページングのいくつかの例を紹介し、各方法の利点について説明します。

ページングを実装する方法

これには多くのアプローチにページングがあります。ページングは、通常、アーキテクチャの問題です。データベースのデザインと、レコードの数に異なります大きくページングがページにします。ページングを実装するのにには、次の方法のいずれかを使用できます。
  • 組み込みのページングを使用して、 データ グリッド コントロールです。この方法では、ページング使いやすいしページのレコード数が少ない場合でも動作します。ただし、レコードの数が増加するとパフォーマンスは低下します。マイクロソフトの Visual Basic で。NET では、組み込みのページングはありません。ページングを実装する方法の詳細については、「サポート技術情報」資料を参照するには、次の文書番号をクリックしてください。
    305271 方法: カスタム ページ DataGrid Windows コントロール Visual Basic を使用してください。NET
  • パフォーマンスが向上するには、クエリまたはレコードの数を取得するストアド プロシージャをデザインします。は、 カスタム ページングのサンプル セクションは、カスタム ページングを実装する方法について説明します。

    上を使用することもでき、WHERE 句では、SQL ステートメントをデザイン クエリまたはストアド プロシージャを使用レコードの数を取得します。TOP を使用および実装カスタム ページングは、するには、次のマイクロソフト開発ネットワーク (MSDN) Web サイトを参照してください方法の詳細については。
    クエリ結果のページング
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconpagingthroughqueryresult.asp

カスタム ページングのサンプル

このサンプルを使用する方法を データ グリッド ASP からカスタム ページングを実装するコントロールです。NET。このメソッドを使用すると、ページの任意の順序で必要なレコードを取得できます。そのため、この方法は効率性と柔軟性です。

このサンプルでは、データベースにはインデックスを持つテーブルが含まれている必要があります。このサンプルを使用して、Microsoft SQL Server と SQL Server が Northwind データベースは、任意のデータベースを使用する場合は、このサンプルを変更できます。
  1. 新しい Visual Basic ASP を作成するのには、次の手順を実行します。NET Web アプリケーション。
    1. Microsoft Visual Studio を起動します。NET。
    2. で、 ファイル メニューのポイント 新しい、し プロジェクト.
    3. で、 新しいプロジェクト ダイアログ ボックス、クリックして Visual Basic プロジェクト 下にあります。 [プロジェクトの種類、し ASP。Net プロファイル 下にあります。 テンプレート.
  2. ドラッグします。 データ グリッド ツールボックスから WebForm1.aspx に制御します。
  3. 右クリックします。 DataGrid1、し プロパティ ビルダー.
  4. 次の手順に従ってください、 プロパティ ビルダー ダイアログ ボックス:
    1. クリックしてください。 ページング.
    2. オンにし、 AllowPaging および AllowCustomPaging チェック ボックス。
    3. 設定は、 PageSize プロパティ 3.
    4. で、 モード ボックスの一覧でクリックしてください ページ番号.
    5. クリックしてください。 適用、し [OK].
  5. クリックしてください。 HTML HTML ソースの表示] を開くには、[WebForm1.aspx の下部にあります。置き換える、<asp:datagrid>は、デフォルトで次のコードを追加タグ:</asp:datagrid>
    <asp:DataGrid id="Datagrid1" runat="server" AllowCustomPaging="True" PageSize="3" AllowPaging="True" PagerStyle-Mode="NumericPages" OnPageIndexChanged="DataGrid1_PageIndexChanged">
    </asp:DataGrid>
    					
  6. [コード] ウィンドウを開くには、WebForm1.aspx ページの空いている領域に] をダブルクリックし、ページの先頭に次の名前空間を追加します。
    Imports System.Data
    Imports System.Data.SqlClient
    					
  7. 下にある次の宣言を追加します。 パブリック クラス Webform1:
        Dim cn As SqlConnection
        Dim StartIndex As Integer
        Dim EndIndex As Integer
    					
  8. 次のコードを追加、 Page_Load フォームのイベント:
            Dim myCommand As SqlCommand
            cn = New SqlConnection("server = localhost; uid=userid; pwd=password; database=Northwind ")
            If Not IsPostBack Then
                myCommand = New SqlCommand()
                myCommand.CommandText = "Select Count(*) from Products"
                myCommand.Connection = cn
                cn.Open()
                DataGrid1.VirtualItemCount = myCommand.ExecuteScalar()
                cn.Close()
                BindDatagrid()
            End If
    					
  9. 後に、次のコードを追加、 Page_Load サブルーチン。
         Sub BindDatagrid()
            Dim myAdapter As SqlDataAdapter
            Dim DS As DataSet
            EndIndex = StartIndex + DataGrid1.PageSize
            myAdapter = New SqlDataAdapter("Select * From Products Where ProductID > @startIndex And ProductID <= @endIndex Order by ProductID", cn)
            myAdapter.SelectCommand.Parameters.Add("@startIndex", StartIndex)
            myAdapter.SelectCommand.Parameters.Add("@endIndex", EndIndex)
            DS = New DataSet()
            myAdapter.Fill(DS)
            DataGrid1.DataSource = DS
            DataGrid1.DataBind()
        End Sub
    
        Public Sub datagrid1_PageIndexChanged(ByVal source As System.Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs)
            StartIndex = (e.NewPageIndex * DataGrid1.PageSize)
            DataGrid1.CurrentPageIndex = e.NewPageIndex
            BindDatagrid()
        End Sub
    					
  10. F5 キーを押してアプリケーションを実行します。
  11. プロジェクトをテストするには、グリッドの下に表示されている任意のページ番号を選択します。

プロパティ

文書番号: 318131 - 最終更新日: 2011年7月25日 - リビジョン: 4.0
キーワード:?
kbhowtomaster kbsqlclient kbsystemdata kbmt KB318131 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:318131
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。
サポート期間が終了した「サポート技術情報」資料に関する免責事項
この資料は、マイクロソフトでサポートされていない製品について記述したものです。そのため、この資料は現状ベースで提供されており、今後更新されることはありません。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com