linq(3)
-
Linq GroupBy 를 통해 평균 값구하기 (C# Winform / VB .net)
위와 같은 Table이 존재 하고 수량의 평균 값어치만 구하고 뿌려주고 싶을 때 여러가지 방법이 있다. 한가지는 DB에서 가져올 때 아예 쿼리로 Group By로 묶어줄 수 있다. SELECT `구분`, `대분류`, `중분류`, COUNT(중분류) AS 수량 FROM t.test 하지만 프로그램이 최초 load될 때 DataSet에 담아두고 각종 Filter작업을 해야할 때는 차라리 그냥 DataTable에서 Filter를 해주는 것이 더 편리하기때문에 Linq라는 작업을 통해서 할 수 있다. 맨 처음 저같은 경우에는 간단한 예제로 하기 위해 csv파일을 불러와 작업을 했는데요. 수량을 계산하기 위해서는 수량 Column이 String Type으로 된 DataColumn이면 안되니까 변경을 해주었..
2022.03.03 -
VB.NET Linq를 이용하여 DataTable에서 일치하는 항목 출력하기
예를들어 위와 같은 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 '..
2020.04.10 -
VB.NET Linq 특정 컬럼 하나만 중복제거 후 Array로 저장하기, vb.net remove duplicate to array for one column
Dim columns = From row In onebon_dt Group row By steps = row("Step").ToString() Into Group Where Group.Count > 0 Select steps Dim query = onebon_dt.AsEnumerable().GroupBy( Function(l) New With { Key .Item = l.Field(Of String)("Item") }).Select( Function(g) g.FirstOrDefault Dim row = output_dt.NewRow() row("Item") = g.Key.Item Return row End Function).CopyToDataTable()
2020.03.20