tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^5: DataGridコントロールでの並び替えやフィルタ指定
投稿日: 2005/09/14(Wed) 17:15
投稿者なおこ(・∀・)
お世話になります。

> 見て実行してみたのですけれど、よく分からなくて…
> もっと簡単に判定できる方法ってないものでしょうか?

簡単と感じられるかどうかわかりませんが、
こんな方法もあります。

■以下のコードを実行するに当たっての準備
FormにDataGrid1を貼り付け。Button1、Button2、TextBox1を貼り付け。
データベースc:\northwind.mdbを用意。適当なSQLServerから、Ordersテーブルをインポート。

以下、コード
===============================================================================
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles MyBase.Load
        '*** DataBaseからデータ取得 ここから
        Dim nwindConn As System.Data.OleDb.OleDbConnection = New
System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & _
                                                       "Data Source=c:\northwind.mdb;")
        Dim selectCMD As System.Data.OleDb.OleDbCommand = New System.Data.OleDb.OleDbCommand
("SELECT * FROM Orders", nwindConn)
        selectCMD.CommandTimeout = 30

        Dim DA As System.Data.OleDb.OleDbDataAdapter = New System.Data.OleDb.OleDbDataAdapter
        DA.SelectCommand = selectCMD

        nwindConn.Open()

        Dim DS As DataSet = New DataSet
        DA.Fill(DS, "Orders")

        nwindConn.Close()
        '*** DataBaseからデータ取得 ここまで

        Dim DT As DataTable = DS.Tables("Orders")
        Me.DataGrid1.DataSource = DT

    End Sub

    Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
Button1.Click
        'EmployeeIDでソート
        Dim DT As DataTable = CType(Me.DataGrid1.DataSource, DataTable)
        Dim rows As DataRow() = DT.Select("", "EmployeeID")
        Dim newDT As DataTable = DT.Clone()
        For Each row As DataRow In rows
            newDT.ImportRow(row)
        Next

        '再表示
        Me.DataGrid1.DataSource = newDT
        Me.DataGrid1.Refresh()
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
        'Textboxの値で絞込み & EmployeeIDでソート
        Dim DT As DataTable = CType(Me.DataGrid1.DataSource, DataTable)
        Dim rows As DataRow() = DT.Select("Freight >= " + Me.TextBox1.Text, "EmployeeID")
        Dim newDT As DataTable = DT.Clone()
        For Each row As DataRow In rows
            newDT.ImportRow(row)
        Next

        '再表示
        Me.DataGrid1.DataSource = newDT
        Me.DataGrid1.Refresh()
    End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。