VB.NET
VB.NET Linq를 이용하여 DataTable에서 일치하는 항목 출력하기
악마성
2020. 4. 10. 10:27
728x90
반응형
예를들어 위와 같은 table이 있다고 치면
AAA를 선택했을 때 AAA에 딸려있는 하위 목록들을 불러오고 싶을 때
여러가지 방법들이 있지만 Linq를 이용하여 작업을 했다.
Private Sub test()
If Not (_info_db Is Nothing) Then
'// Column1 의 AAA라는 값과 일치하면
'// AAA와 일치하는 Column2의 값들을 Select 한다.
Dim query = From r In _info_db
Where r.Field(Of String)("Column1") = "AAA"
Select New With
{
.tablesName = r.Field(Of String)("Column2")
}
Dim tmpDt As DataTable = New DataTable
'// Clone 메서드를 이용하여 컬럼을 복제한다.
tmpDt = _info_db.Clone
'// Linq로 조회된 데이터를 temp datatable에 담는다.
For Each item In query
tmpDt.Rows.Add(item.tablesName)
Next
'// 콤보박스 아이템들을 초기화 한다.
__cbTable.Items.Clear()
'// 콤보박스에 아이템을 추가한다.
For Each dr As DataRow In tmpDt.Rows
__cbTable.Items.Add(dr(0).ToString)
Next
'// 맨 처음 목록을 리스트에 올려준다.
__cbTable.SelectedIndex = 0
End If
End Sub
728x90
반응형