Esempio n. 1
0
        /// <summary>
        /// Add
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static bool Add(string name)
        {
            lock (BusinessEntity.m_sDS)
            {
                bool success = false;

                if (!string.IsNullOrEmpty(name) && Find(name) == null)
                {
                    var dataRow = BusinessEntity.m_sDS.Departments.AddDepartmentsRow(name);

                    try
                    {
                        success = m_sTA.Update(dataRow) == 1;
                    }
                    catch { }

                    if (!success)
                    {
                        BusinessEntity.m_sDS.Departments.RemoveDepartmentsRow(dataRow);
                    }
                    else
                    {
                        m_sDepartments.Add(new Department(dataRow));
                    }
                }

                return(success);
            }
        }
        // create the data tables from lists set up with initial data
        // we won't use these lists or the classes after the data tables are created

        private void CreateRegistrationDataTables()
        {
            // set the shorter table names

            registrationTable = studentRegistrationDataSet.Registration;
            coursesTable      = studentRegistrationDataSet.Courses;
            studentsTable     = studentRegistrationDataSet.Students;
            departmentsTable  = studentRegistrationDataSet.Departments;

            // seed all the table data

            // students data

            List <Student> students = new List <Student>()
            {
                new Student {
                    StudentFirstName = "Svetlana", StudentLastName = "Rostov", StudentMajor = "CSIS"
                },
                new Student {
                    StudentFirstName = "Claire", StudentLastName = "Bloome", StudentMajor = "ACCT"
                },
                new Student {
                    StudentFirstName = "Sven", StudentLastName = "Baertschi", StudentMajor = "MKTG"
                },
                new Student {
                    StudentFirstName = "Cesar", StudentLastName = "Chavez", StudentMajor = "FINC"
                },
                new Student {
                    StudentFirstName = "Debra", StudentLastName = "Manning", StudentMajor = "CSIS"
                },
                new Student {
                    StudentFirstName = "Fadi", StudentLastName = "Hadari", StudentMajor = "ACCT"
                },
                new Student {
                    StudentFirstName = "Hanyeng", StudentLastName = "Fen", StudentMajor = "MKTG"
                },
                new Student {
                    StudentFirstName = "Hugo", StudentLastName = "Victor", StudentMajor = "FINC"
                },
                new Student {
                    StudentFirstName = "Lance", StudentLastName = "Armstrong", StudentMajor = "MKTG"
                },
                new Student {
                    StudentFirstName = "Terry", StudentLastName = "Matthews", StudentMajor = "CSIS"
                },
                new Student {
                    StudentFirstName = "Eugene", StudentLastName = "Fei", StudentMajor = "FINC"
                },
                new Student {
                    StudentFirstName = "Michael", StudentLastName = "Thorson", StudentMajor = "CSIS"
                },
                new Student {
                    StudentFirstName = "Simon", StudentLastName = "Li", StudentMajor = "CSIS"
                },
            };

            // departments data

            List <Department> departments = new List <Department>()
            {
                new Department {
                    DepartmentId = "CSIS", DepartmentName = "Computing Studies"
                },
                new Department {
                    DepartmentId = "ACCT", DepartmentName = "Accounting"
                },
                new Department {
                    DepartmentId = "MKTG", DepartmentName = "Marketing"
                },
                new Department {
                    DepartmentId = "FINC", DepartmentName = "Finance"
                },
            };

            // courses data

            List <Course> courses = new List <Course>()
            {
                new Course {
                    CourseId = 101, CourseDepartmentId = "CSIS", CourseName = "Programming I"
                },
                new Course {
                    CourseId = 102, CourseDepartmentId = "CSIS", CourseName = "Programming II"
                },
                new Course {
                    CourseId = 101, CourseDepartmentId = "ACCT", CourseName = "Accounting I"
                },
                new Course {
                    CourseId = 102, CourseDepartmentId = "ACCT", CourseName = "Accounting II"
                },
                new Course {
                    CourseId = 101, CourseDepartmentId = "FINC", CourseName = "Corporate Finance"
                },
            };

            // registration data - note consists of a registration object, and a student id.
            // if the students table is set up with a different autoincrement that starting at 1, this won't work

            List <Registration> registrations = new List <Registration>()
            {
                new Registration {
                    RegisteredCourse = courses[0], StudentId = 1
                },
                new Registration {
                    RegisteredCourse = courses[0], StudentId = 2
                },
                new Registration {
                    RegisteredCourse = courses[1], StudentId = 1
                },
                new Registration {
                    RegisteredCourse = courses[4], StudentId = 1
                },
            };


            // for each table, Fill the dataset table with data from the database (should be zero).
            //     this also instantiates sql commands

            registrationTableAdapter.Fill(registrationTable);
            coursesTableAdapter.Fill(coursesTable);
            studentsTableAdapter.Fill(studentsTable);
            departmentsTableAdapter.Fill(departmentsTable);

            // make sure student id starts at 1
            ReseedTable(studentsTableAdapter.Connection, studentsTable.TableName, studentsTable.Count());

            // remove any data that is in the data tables.
            // assumes that the tables have been set up properly using the sql project in this solution

            DeleteData(registrationTableAdapter.Adapter, registrationTable);
            DeleteData(coursesTableAdapter.Adapter, coursesTable);
            DeleteData(studentsTableAdapter.Adapter, studentsTable);
            DeleteData(departmentsTableAdapter.Adapter, departmentsTable);


            //    for each object in the lists above that corresponds to the data table, insert a record
            //    then Update, and re Fill the data table

            // add Students using adapter insert, then update and fill
            // then bind the datasource to the table
            // this is already done for you

            foreach (Student s in students)
            {
                // an alternative to using the Insert method

                //StudentRegistrationDataSet.StudentsRow row = studentRegistrationDataSet.Students.NewStudentsRow();
                //row.StudentFirstName = s.StudentFirstName;
                //row.StudentLastName = s.StudentLastName;
                //row.StudentMajor = s.StudentMajor;
                //studentRegistrationDataSet.Students.AddStudentsRow(row);

                studentsTableAdapter.Insert(s.StudentFirstName, s.StudentLastName, s.StudentMajor);
            }
            studentsTableAdapter.Update(studentsTable);
            studentsTableAdapter.Fill(studentsTable);

            dataGridViewStudents.DataSource = studentsTable;

            // add Departments, then update and fill, and bind datasource
            // your code here

            foreach (Department d in departments)
            {
                departmentsTableAdapter.Insert(d.DepartmentId, d.DepartmentName);
            }
            departmentsTableAdapter.Update(departmentsTable);
            departmentsTableAdapter.Fill(departmentsTable);

            dataGridViewDepartments.DataSource = departmentsTable;

            // add Courses, then update and fill, and bind datasource
            // your code here


            foreach (Course c in courses)
            {
                coursesTableAdapter.Insert(c.CourseId, c.CourseDepartmentId, c.CourseName);
            }
            coursesTableAdapter.Update(coursesTable);
            coursesTableAdapter.Fill(coursesTable);

            dataGridViewCourses.DataSource = coursesTable;

            // sort the courses in gridview
            // hint: use the Sort() method on column 0, ascending
            // your code here

            dataGridViewCourses.Sort(dataGridViewCourses.Columns[0], ListSortDirection.Ascending);


            // add Registration last. add the registrations then update and fill again
            // finally, set DataSource to the table

            foreach (Registration r in registrations)
            {
                registrationTableAdapter.Insert(r.StudentId, r.RegisteredCourse.CourseId, r.RegisteredCourse.CourseDepartmentId);
            }
            registrationTableAdapter.Update(registrationTable);
            registrationTableAdapter.Fill(registrationTable);

            dataGridViewRegistration.DataSource = registrationTable;
            //registrationTableAdapter.Fill(registrationTable); // instantiates sql commands

            // your code here
        }