private void btn조회_Click(object sender, EventArgs e) { 결과목록 = new List <과제제출>(); var 시작일 = dateTimePicker1.Value.Date; var 종료일 = 시작일.AddDays(7); var 과목 = cmb과목.SelectedItem.ToString(); using (var db = new DBDataContext()) { var 일목록 = db.과제파일.Where(p => p.과목 == 과목 && p.시작일 == 시작일).OrderBy(p => p.No).Select(p => p.일명1).ToList(); while (일목록.Count < 6) { 일목록.Add(""); } var 헤더 = new 과제제출 { 학번 = "학번", 이름 = "이름", 제출1 = 일목록[0], 제출2 = 일목록[1], 제출3 = 일목록[2], 제출4 = 일목록[3], 제출5 = 일목록[4], 제출6 = 일목록[5] }; 결과목록.Add(헤더); var sql = String.Format(SQL1, 시작일, 과목); var 조회결과목록 = db.ExecuteQuery <조회결과1>(sql); var map = new Dictionary <string, 과제제출>(); foreach (var p in 조회결과목록) { var prjId = db.학생_프로젝트.Where(q => q.학번 == p.학번 && q.Project.과목 == 과목).Select(q => q.Project.id).ToArray(); if (map.ContainsKey(p.학번) == false) { map[p.학번] = new 과제제출 { 학번 = p.학번, 이름 = p.이름, 프로젝트ID = string.Join(" ", prjId) } } ; var r = map[p.학번]; if (일목록[0] == p.일명) { r.제출1 = p.제출; } else if (일목록[1] == p.일명) { r.제출2 = p.제출; } else if (일목록[2] == p.일명) { r.제출3 = p.제출; } else if (일목록[3] == p.일명) { r.제출4 = p.제출; } else if (일목록[4] == p.일명) { r.제출5 = p.제출; } else if (일목록[5] == p.일명) { r.제출6 = p.제출; } } var keys = map.Keys.ToList(); keys.Sort(); foreach (var k in keys) { 결과목록.Add(map[k]); } } dataGridView1.DataSource = 결과목록; }