DataGrid 全レコード表示 [VB.NET]

Visual Basic.NET ADO.NETデータベースプログラミング

Web版:DataGrid DataAdapter.Fill

DataAdapterオブジェクトのFillメソッドを使って、テーブルの全レコードをDataGridに表示します。データグリッドページングは、データグリッドオブジェクトのメンバーを、データグリッド列スタイルは、BoundColumnオブジェクトのメンバーを使います。

MDB版 サンプルプログラム

Web版

コントロール プロパティ 設定値
Label1 Text ** 社員一覧 **
BorderStyle Groove
DgrSyain AutoGerenateColumns False
LblMessage BorderStyle Double

DataSetオブジェクトと テーブル名を引数に指定し、DataAdapterオブジェクトのFillメソッドを呼び出します。

ソースリストの枠内をクリックすると全選択できます。

Imports System.Data.OleDb

Public Class WebForm1
    Inherits System.Web.UI.Page
    Protected WithEvents Label1 As System.Web.UI.WebControls.Label
    Protected WithEvents DgrSyain As System.Web.UI.WebControls.DataGrid
    Protected WithEvents LblMessage As System.Web.UI.WebControls.Label

#Region " Web フォーム デザイナで生成されたコード "
    ' 自動生成部分省略
#End Region

    '------------------------------------------------------------------
    ' 社員テーブルからレコードを取得し、データグリッドに表示する
    '------------------------------------------------------------------
    Private Sub Page_Load(ByVal sender As System.Object, _
        ByVal e As System.EventArgs) Handles MyBase.Load

        If Not IsPostBack Then
            Me.DgrSyain.CurrentPageIndex = 0
        End If

        ' 社員一覧データグリッド生成
        ' 注:PageIndexChangedイベントが発生した時に必要
        GenerateDgrSyain()

    End Sub

    '------------------------------------------------------------------
    ' ページ番号クリック
    '------------------------------------------------------------------
    Private Sub DgrSyain_PageIndexChanged _
        (ByVal source As Object, ByVal e As _
        System.Web.UI.WebControls.DataGridPageChangedEventArgs) _
        Handles DgrSyain.PageIndexChanged

        ' 選択された頁を設定
        Me.DgrSyain.CurrentPageIndex = e.NewPageIndex
        ' 社員一覧データグリッド再度生成
        GenerateDgrSyain()

    End Sub

    '------------------------------------------------------------------
    ' 社員一覧データグリッド生成
    '------------------------------------------------------------------
    Private Sub GenerateDgrSyain()

        Const SELECT_SYAIN As String = _
            "SELECT 社員コード, 社員氏名, 社員カナ " + _
            "FROM 社員テーブル ORDER BY 社員コード"

        Dim con As New OleDbConnection()
        Dim cmd As New OleDbCommand()
        Dim da As New OleDbDataAdapter()
        Dim ds As New DataSet()

        Try
            ' ページング機能を有効にする
            Me.DgrSyain.AllowPaging = True
            ' データグリッドのページング関連プロパティの設定
            Me.DgrSyain.PageSize = 5
            Me.DgrSyain.PagerStyle.Mode = PagerMode.NumericPages
            Me.DgrSyain.PagerStyle.PageButtonCount = 5
            Me.DgrSyain.PagerStyle.Position = PagerPosition.Top
            Me.DgrSyain.Width = New Unit(320)
            Me.DgrSyain.Height = New Unit(18)

            ' データグリッド列クリア
            Me.DgrSyain.Columns.Clear()

            ' データグリッド列を生成
            Dim col(2) As BoundColumn

            ' 1列目:社員コード
            col(0) = New BoundColumn()
            col(0).HeaderText = "コード"
            col(0).DataField = "社員コード"
            col(0).ItemStyle.Width = New Unit(50)
            col(0).ItemStyle.HorizontalAlign = _
            HorizontalAlign.Center
            Me.DgrSyain.Columns.AddAt(0, col(0))
            ' 2列目:社員氏名
            col(1) = New BoundColumn()
            col(1).HeaderText = "社員氏名"
            col(1).DataField = "社員氏名"
            col(1).ItemStyle.Width = New Unit(120)
            Me.DgrSyain.Columns.AddAt(1, col(1))
            ' 3列目:社員カナ名
            col(2) = New BoundColumn()
            col(2).HeaderText = "社員カナ名"
            col(2).DataField = "社員カナ"
            Me.DgrSyain.Columns.AddAt(2, col(2))

            ' 仮想アプリケーションルートパスを取得
            Dim vPath As String = Request.ApplicationPath

            ' 仮想アプリケーションルートパスの物理パスを取得
            Dim path As String = Server.MapPath(vPath)

             ' DB接続文字列の設定
             ' 注:プロジェクトフォルダにsample.mdbを置く
             con.ConnectionString = _
                 "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
                 path + "\sample.mdb"

            ' コネクションの設定
            cmd.Connection = con

            ' SQL文の設定
            cmd.CommandText = SELECT_SYAIN

            ' データを取得する 
            da.SelectCommand = cmd
            ds.Clear()
            da.Fill(ds, "社員テーブル")

            ' データをバインドする
            Me.DgrSyain.DataSource = ds
            Me.DgrSyain.DataBind()

        Catch ex As Exception
            ' 例外が発生した時の処理
            Me.LblMessage.Text = ex.ToString

        End Try

    End Sub

 End Class