■No33938に返信(だんごさんの記事)
> 前回> Nomalアイコン DataTableにSQLを実行できますか?> └#33897 [作成:07/03(Tue) 20:15]> で、教えて頂いたLINQですが、その後、あまり勉強が進んでいません。
DataTable で実装してみた場合:
Public Class Form1
Private myTable As DataTable
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
myTable = New DataTable()
myTable.Columns.Add("Code", GetType(String))
myTable.Columns.Add("Name", GetType(String))
myTable.Rows.Add("100", "岡田")
myTable.Rows.Add("200", "山田")
myTable.Rows.Add("300", "小林")
BindingSource1.DataSource = myTable
DataGridView1.DataSource = BindingSource1
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
BindingSource1.Filter = ""
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
BindingSource1.Filter = "Code='200'"
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'DataTable を List(Of Test) に変換する例
Dim myList As List(Of Test) = myTable.AsEnumerable().Select(
Function(r) New Test() With {
.Code = r.Field(Of String)("Code"),
.Name = r.Field(Of String)("Name")
}).ToList()
End Sub
End Class
Public Class Test
Public Property Code As String
Public Property Name As String
End Class
Public Class Form1 Dim myList As New List(Of Test) Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '全てのListの表示 DataGridView1.DataSource = myList End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click Extraction("200") End Sub Sub Extraction(Code As String) 'Code=200のレコードのみ表示 DataGridView1.DataSource = "????" End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load myList.Add(New Test With {.Code = "100", .Name = "岡田"}) myList.Add(New Test With {.Code = "200", .Name = "山田"}) myList.Add(New Test With {.Code = "300", .Name = "小林"}) End Sub End Class
Class Test Public Property Code As String Get Return _Code End Get Friend Set(value As String) _Code = value End Set End Property Public Property Name As String Get Return _Name End Get Friend Set(value As String) _Name = value End Set End Property Private _Code As String Private _Name As String End Class