[C# 문법] DataTable Linq 이용하여 데이터 조회 하는 방법
- C#/C# 문법
- 2019. 9. 12. 01:00
안녕하세요~~
오늘은 C#문법에서 DataSet에 저장되어 있는 데이터를, Linq를 이용하여 사용자가 원하는 대로 데이터를 조회하는 방법에 대해서 알려드리고자 합니다.
Linq를 저도 지금 공부중이고, 공부를 하면서 그때그때 익히고 사용한 것을 정리하는 것이므로, 조금은 내용이 부족할 수도 있지만..도움이 되셨으면 좋겠어요ㅎㅎ
시나리오
1. 오라클 DB 연동 후, Student 테이블을 조회한 후, 조회된 데이터를 DataSet에 저장
2. 새로운 DataTable 객체를 생성
3. 생성된 DataTable 객체에 Linq를 이용하여 학생 이름이 “범범조조”인 학생 출력하기
위의 시나리오 대로 예제코드를 작성해 보도록 하겠습니다.
오라클 연동은 앞에서 포스팅 하였기 때문에, 따로 설명 드리지는 않겠습니다.
대신 아래 URL 남겨 놓을게요!ㅎㅎ
오라클 연동 URL - https://afsdzvcx123.tistory.com/245?category=784688
예제 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Xml.Linq;
namespace test { class Program { public enum COLUMNS { SCHOOL_NO, CLASS, NAME, AGE, GRADE, SCORE}; public static DataSet ds = new DataSet();
static void Main(string[] args) { OracleDBManager dbManager = new OracleDBManager();
Console.WriteLine("데이터 베이스 연결 중...");
if (dbManager.GetConnection() == false) { Console.WriteLine("데이터 베이스 접속 연결 실패!!!!!"); return; }
Console.WriteLine("데이터 베이스 접속 성공!!!");
GetData(); //SELECT문으로 데이터 조회 및 DataSet에 저장
Console.WriteLine(); Console.WriteLine(); Console.WriteLine();
//DataTable Linq를 이용하여 Filter DataTable dt = new DataTable();
//이름이 "범범조조" 인 학생 Linq를 이용하여 조회 dt = ds.Tables[0].AsEnumerable() .Where(Row => Row.Field<string>("SCHOOL_NO") == "1" && Row.Field<string>("NAME") == "범범조조") .OrderByDescending(Row => Row.Field<string>("SCORE")) .CopyToDataTable();
//DataTable 출력 for(int i = 0; i < dt.Rows.Count; i++) { for (int col = 0; col < dt.Columns.Count; col++) { Console.Write(" {0} ", dt.Rows[i][col].ToString()); } Console.WriteLine(); }
}
/// <summary> /// 쿼리문 작성하여 /// 데이터베이스에 저장되어 있는 데이터 /// 가져오는 메서드 /// </summary> public static void GetData() { OracleDBManager dbManager = new OracleDBManager();
string query = string.Empty; query = @" SELECT SCHOOL_NO, CLASS, NAME, AGE, GRADE, SCORE FROM WIN.STUDENT";
dbManager.ExecuteDsQuery(ds, query); } } }
|
DataSet에 저장된 Student 테이블 데이터
Linq 조회 결과
실행 결과
이처럼, Linq를 통하여 DataSet에 저장되어 있는 학생들의 정보에서 이름이 “범범조조” 인 학생만 조회되어 출력된 것을 확인하실 수 있습니다!
Linq 문법이 아직은 익숙하지 않지만..계속 연습을 해서 손에 익숙해 지도록 많은 노력을 해야겠어요..^^
부족한 글 읽어 주셔서 감사합니다ㅎㅎ
'C# > C# 문법' 카테고리의 다른 글
[C# 문법] DataView RowFilter 숫자(Number) 비교하는 방법 (0) | 2019.10.04 |
---|---|
[C# 문법] 자료구조 Queue(큐) 설명 및 예제코드 (0) | 2019.09.13 |
[C# 문법] string[] 을 List로 변환하는 방법 (0) | 2019.09.11 |
[C# 문법] C# 폴더 열기 – Process Start (0) | 2019.09.08 |
[C# 문법] C# Thread 클래스 매개변수 전달하는 방법 (0) | 2019.09.07 |
이 글을 공유하기