DataGrid DataAdapter.Fill
DataAdapterオブジェクトのFillメソッド使って、検索したレコードをDataGridに表示します。
MDB版:サンプルプログラム
コントロール | プロパティ | 設定値 |
---|---|---|
TxtMinCode | Text | "" |
TxtMaxCode | Text | "" |
BtnSelect | Text | グリッド表示 |
DgrSyain | Caption Text | ** 社員一覧 ** |
データグリッド列スタイルは、DataGridTextBoxColumnオブジェクトを使ってコーディングします。
sample.mdbをプロジェクトフォルダ下のbinフォルダに置きます。
MDB版:サンプルプログラム
あらかじめ、OleDbCommand.ExecuteScalarメソッドで、社員テーブル表の全レコード数を求め、レコード数分のsyain配列要素を確保します。
そして、OleDbCommand.ExecuteReaderメソッドを実行して、全レコードデータをsyain配列に取得します。
ソースリストの枠内をクリックすると全選択できます。
Imports System.Data.OleDb Public Class FormSelectRangeGrid Inherits System.Windows.Forms.Form #Region " Windows フォーム デザイナで生成されたコード " ' 自動生成部分省略 #End Region '-------------------------------------------------------------- ' 検索ボタン:特定範囲のレコードをデータグリッドに表示する '-------------------------------------------------------------- Private Sub BtnSelect_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles BtnSelect.Click Dim con As New OleDbConnection() Dim cmd As New OleDbCommand() Dim da As New OleDbDataAdapter() Dim ds As New DataSet() ' 社員コード未入力エラーチェック If Me.TxtMinCode.Text = "" Or Me.TxtMaxCode.Text = "" Then MessageBox.Show("社員コード未入力", "エラー") Exit Sub End If Try ' テーブルスタイルを生成する Dim tblStyle As New DataGridTableStyle tblStyle.MappingName = "社員テーブル" ' 列スタイルを生成し、プロパティを設定する Dim col(2) As DataGridTextBoxColumn ' 1列目:社員コード col(0) = New DataGridTextBoxColumn() col(0).HeaderText = "コード" col(0).MappingName = "社員コード" col(0).Width = 40 col(0).Alignment = HorizontalAlignment.Center ' 2列目:社員氏名 col(1) = New DataGridTextBoxColumn() col(1).HeaderText = "社員氏名" col(1).MappingName = "社員氏名" col(1).Width = 90 col(1).Alignment = HorizontalAlignment.Left ' 3列目:社員カナ名 col(2) = New DataGridTextBoxColumn() col(2).HeaderText = "社員カナ名" col(2).MappingName = "社員カナ" col(2).Width = 130 col(2).Alignment = HorizontalAlignment.Left ' 列スタイルをテーブルスタイルに追加する tblStyle.GridColumnStyles.AddRange(col) ' テーブルスタイルをグリッドに追加する DgrSyain.TableStyles.Clear() DgrSyain.TableStyles.Add(tblStyle) ' DB接続文字列の設定 con.ConnectionString = _ "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & _ Application.StartupPath & "\sample.mdb" 'コネクションの設定 cmd.Connection = con ' SQL文の設定 cmd.CommandText = "SELECT 社員コード, 社員氏名, 社員カナ " cmd.CommandText &= "FROM 社員テーブル " cmd.CommandText &= "WHERE 社員コード >=@minID " cmd.CommandText &= "AND 社員コード <= @maxID " cmd.CommandText &= "ORDER BY 社員コード" cmd.Parameters.Add("@minID", OleDbType.Char, 5) cmd.Parameters("@minID").Value = Me.TxtMinCode.Text cmd.Parameters.Add("@maxID", OleDbType.Char, 5) cmd.Parameters("@maxID").Value = Me.TxtMaxCode.Text ' データを取得する da.SelectCommand = cmd ds.Clear() da.Fill(ds, "社員テーブル") ' データをバインドする DgrSyain.SetDataBinding(ds, "社員テーブル") Catch ex As Exception ' 例外が発生した時の処理 MessageBox.Show(ex.ToString, "例外発生") End Try End Sub End Class
- Windows版:テーブルの全レコードをDataGridに表示する
- Web版:テーブルの全レコードをDataGridに表示
- Web版:テーブルの特定レコードをDataGridに表示