Пример #1
0
        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 = 결과목록;
        }