示例#1
0
        private void button3_Click(object sender, EventArgs e)
        {
            DbWorker dbWorker;
            OpenFileDialog ofdOpen = new OpenFileDialog();
           
                if (ofdOpen.ShowDialog() != DialogResult.OK)
                    return;
                dbWorker = new DbWorker("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + ofdOpen.FileName);
                ofdOpen.Dispose();  
            
            try
            {
                dbWorker.OpenDB();
            }
            catch (TypeInitializationException error)
            {
                MessageBox.Show(error.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }


            dbWorker.WriteLessonsDb(tableProcessor.ListLessons,1);
            dbWorker.CloseDB();
        
  
        }
        private void buttonWriteThemDb_Click(object sender, EventArgs e)
        {
            DbWorker dbWorker = new DbWorker(connection);

            try
            {
                dbWorker.OpenDB();
            }
            catch (TypeInitializationException error)
            {
                //MessageBox.Show(error.Message, "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            int plIzDisPoVidZan = dbWorker.WriteThematicPlanDb(thematicPlanProcessor.IdDiscipline, thematicPlanProcessor.Year);
            dbWorker.WriteLessonsDb(tableProcessor.ListLessons, plIzDisPoVidZan);
            dbWorker.CloseDB();
        }
        /// <summary>
        /// Вставка данных в комбобокс ФГОС из БД
        /// </summary>
        /// <param name="parStringConnection">Строка для соединения (адрес базы)</param>
        public void inputStartData(String parStringConnection)
        {
            DbWorker dbWorker = new DbWorker(connection);
            try
            {
                dbWorker.OpenDB();
            }
            catch (TypeInitializationException error)
            {
                //MessageBox.Show(error.Message, "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            foreach (string str in dbWorker.GetListRecords("SELECT ПоколениеФГОС.НазвФГОС FROM ПоколениеФГОС"))
            {
                comboBoxFGOS.Items.Add(str);
            }

            foreach (string str in dbWorker.GetListRecords("SELECT НазвСпециальности FROM Специальность"))
            {
                comboBoxSpecialty.Items.Add(str);
            }

            foreach (string str in dbWorker.GetListRecords("SELECT КодСпециальности FROM Специальность"))
            {
                comboBoxCodeSpecialty.Items.Add(str);
            }

            foreach (string str in dbWorker.GetListRecords("SELECT НазвСпециализации FROM Специализация"))
            {
                comboBoxSpecialization.Items.Add(str);
            }
            foreach (string str in dbWorker.GetListRecords("SELECT КодСпециализации FROM Специализация"))
            {
                comboBoxCodeSpecialization.Items.Add(str);
            }


            dbWorker.CloseDB();
        }
        /// <summary>
        /// Вставка данных в комбобокс Учебный план из БД
        /// </summary>
        /// <param name="parStringConnection">Строка для соединения (адрес базы)</param>
        public void inputStartData(String parStringConnection)
        {
            listEdPlans.Clear();
            DbWorker dbWorker = new DbWorker(connection);
            try
            {
                dbWorker.OpenDB();
            }
            catch (TypeInitializationException error)
            {
                //MessageBox.Show(error.Message, "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

            listEdPlans=dbWorker.GetListEducationalPlans();

            foreach (EducationalPlan edPlan in listEdPlans)
            {
                comboBoxIdEdPlan.Items.Add(edPlan.IdInBase+"|   "+edPlan.Specialty+" "+edPlan.Specialization);
            }

            dbWorker.CloseDB();
        }
        private void buttonWriteEdDb_Click(object sender, EventArgs e)
        {
            try
            {
                EdPlanProcessor.EducationalPlan.Specialty.CodeSpecialty = this.textBoxCodeSpecialty.Text;
                EdPlanProcessor.EducationalPlan.Specialty.NameSpecialty = this.textBoxSpecialty.Text;
                EdPlanProcessor.EducationalPlan.Specialization.CodeSpecialization = this.textBoxCodeSpecialization.Text;
                EdPlanProcessor.EducationalPlan.Specialization.NameSpecialization = this.textBoxSpecialization.Text;
                EdPlanProcessor.EducationalPlan.Fgos = comboBoxFGOS.Text;
                EdPlanProcessor.EducationalPlan.LevelEducation = this.comboBoxLevelEducation.Text;
                EdPlanProcessor.EducationalPlan.Year = int.Parse(this.comboBoxYear.Text);

                DbWorker dbWorker = new DbWorker(connection);

                try
                {
                    dbWorker.OpenDB();
                }
                catch (TypeInitializationException error)
                {
                    //MessageBox.Show(error.Message, "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }


                dbWorker.WriteEducationalPlanDB(EdPlanProcessor.EducationalPlan);
                dbWorker.WriteEducationalProgramsDB(EdPlanProcessor.ListEducationalPrograms, EdPlanProcessor.EducationalPlan.IdEducationalPlan);
                dbWorker.CloseDB();
            }

            catch (System.NullReferenceException)
            {
                MessageBox.Show("Не удалось выполнить запись, проверьте корректность введенных данных. \nВозможно вы не выбрали один из файлов", "Ошибка при попытке записи", MessageBoxButtons.OK);    
            }
        }
 /// <summary>
 /// Проверка наличия ТП по дисциплинам из УП в БД
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void buttonCheckThemPlanDiscDb_Click(object sender, EventArgs e)
 {
     List<string> listDisciplines = new List<string>();
     Regex regex = new Regex(@"\D");
     if ((regex.Replace(comboBoxIdEdPlan.Text.Substring(0, comboBoxIdEdPlan.Text.IndexOf('|')), "").Trim() == string.Empty))
     {
         MessageBox.Show("Неверный Код Учебного плана", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
         return;
     }
     DbWorker dbWorker = new DbWorker(connection);
     dbWorker.OpenDB();
     int parIdEdPlan = int.Parse(comboBoxIdEdPlan.Text.Substring(0, comboBoxIdEdPlan.Text.IndexOf('|')));
     listDisciplines = dbWorker.GetListDisciplines("SELECT НазвДисципл.НазванДисципл FROM УчебныйПлан " +
     " INNER JOIN (ОбщОбрПрограмма INNER JOIN (НазвДисципл INNER JOIN " +
     " (Дисциплины INNER JOIN ТемПлан ON Дисциплины.Код = ТемПлан.КодДисц) ON НазвДисципл.КодНД = Дисциплины.КодНазвДисц) " +
     " ON ОбщОбрПрограмма.КодООП = Дисциплины.КодООП) ON УчебныйПлан.КодУчПлана = ОбщОбрПрограмма.КодУП " +
     " WHERE (((ТемПлан.КодТП) Is Not Null) AND ((УчебныйПлан.КодУчПлана)= "+ parIdEdPlan.ToString()+" )) ");
     dbWorker.CloseDB();
     inputChekingDataInBox(listDisciplines);
 }
        /// <summary>
        /// Копировать в поля инфу из БД
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button2_Click(object sender, EventArgs e)
        {
            textBoxCodeSpecialty.Text = textBoxDataInBaseCodeSpecialty.Text;
            textBoxSpecialty.Text = textBoxDataInBaseNameSpecialty.Text;
            textBoxSpecialization.Text =  textBoxDataInBaseNameSpecialization.Text;
            textBoxCodeSpecialization.Text = textBoxDataInBaseCodeSpecialization.Text;

            if (comboBoxIdEdPlan.Text == "") return;
            DbWorker dbWorker = new DbWorker(connection);
            dbWorker.OpenDB();
            int parIdEdPlan = int.Parse(comboBoxIdEdPlan.Text.Substring(0, comboBoxIdEdPlan.Text.IndexOf('|')));
            inputEdTableData(dbWorker.GetListDisciplines("SELECT НазвДисципл.НазванДисципл FROM НазвДисципл INNER JOIN "
                + "(УчебныйПлан INNER JOIN (ОбщОбрПрограмма INNER JOIN Дисциплины ON ОбщОбрПрограмма.КодООП = Дисциплины.КодООП) "
            + " ON УчебныйПлан.КодУчПлана = ОбщОбрПрограмма.КодУП) ON НазвДисципл.КодНД = Дисциплины.КодНазвДисц "
              + " WHERE (УчебныйПлан.КодУчПлана)= " + parIdEdPlan.ToString()));

            dbWorker.CloseDB();
        }
        /// <summary>
        /// Запись выписки в базу - общий метод
        /// </summary>
        /// <param name="ordderingProcessor"></param>
        private void WriteOrdering(OrderingProcessor ordderingProcessor)
        {
            ordderingProcessor.OpenExcelDoc();
            ordderingProcessor.getOrderingInformation();
            ordderingProcessor.CloseExcelDoc();

            DbWorker dbWorker = new DbWorker(connection);
            dbWorker.OpenDB();

            int idDiscipline = 0;
            if (ordderingProcessor.Characteristic.Specialization.CodeSpecialization == "")
                idDiscipline = dbWorker.GetRecord(new OleDbCommand("SELECT Дисциплины.Код FROM (Специальность INNER JOIN " +
                    "(Специализация INNER JOIN УчебныйПлан ON Специализация.IDСпециализации = УчебныйПлан.КодСпециализации) ON " +
                    "Специальность.IDСпециальности = УчебныйПлан.КодСпециальности) INNER JOIN (ОбщОбрПрограмма INNER JOIN " +
                    "(НазвДисципл INNER JOIN Дисциплины ON НазвДисципл.КодНД = Дисциплины.КодНазвДисц) ON ОбщОбрПрограмма.КодООП = Дисциплины.КодООП) ON " +
                    "УчебныйПлан.КодУчПлана = ОбщОбрПрограмма.КодУП " +
                    "WHERE (((НазвДисципл.НазванДисципл)= '" + ordderingProcessor.Characteristic.Discipline + "') AND " +
                    "((Специализация.НазвСпециализации)= '" + ordderingProcessor.Characteristic.Specialization.NameSpecialization + "') " +
                    "AND ((Специальность.КодСпециальности)= '" + ordderingProcessor.Characteristic.Specialty.CodeSpecialty + "') " +
                    "AND ((Специальность.НазвСпециальности)='" + ordderingProcessor.Characteristic.Specialty.NameSpecialty + "') " +
                    "AND ((Специализация.КодСпециализации) Is Null))", dbWorker.DbCon));
            else
                idDiscipline = dbWorker.GetRecord(new OleDbCommand("SELECT Дисциплины.Код FROM (Специальность INNER JOIN " +
                "(Специализация INNER JOIN УчебныйПлан ON Специализация.IDСпециализации = УчебныйПлан.КодСпециализации) ON " +
                "Специальность.IDСпециальности = УчебныйПлан.КодСпециальности) INNER JOIN (ОбщОбрПрограмма INNER JOIN " +
                "(НазвДисципл INNER JOIN Дисциплины ON НазвДисципл.КодНД = Дисциплины.КодНазвДисц) ON ОбщОбрПрограмма.КодООП = Дисциплины.КодООП) ON " +
                "УчебныйПлан.КодУчПлана = ОбщОбрПрограмма.КодУП " +
                "WHERE (((НазвДисципл.НазванДисципл)= '" + ordderingProcessor.Characteristic.Discipline + "') AND " +
                "((Специализация.НазвСпециализации)= '" + ordderingProcessor.Characteristic.Specialization.NameSpecialization + "') " +
                "AND ((Специальность.КодСпециальности)= '" + ordderingProcessor.Characteristic.Specialty.CodeSpecialty + "') " +
                "AND ((Специальность.НазвСпециальности)='" + ordderingProcessor.Characteristic.Specialty.NameSpecialty + "') " +
                "AND ((Специализация.КодСпециализации)= '" + ordderingProcessor.Characteristic.Specialization.CodeSpecialization + "'))", dbWorker.DbCon));


            if (idDiscipline == 0)
            {
                MessageBox.Show("В базе данных не содержится учебный план, соответствующий дисциплине, специальности и специализации из импортируемого Вами темплана.", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                dbWorker.CloseDB();
                return;
            }
            //У ВЫПИСКИ ГОДА НЕТ?
            int plIzDisPoVidZan = dbWorker.WriteThematicPlanDb(idDiscipline, 0);
            dbWorker.WriteLessonsDb(ordderingProcessor.ListLessons, plIzDisPoVidZan);

            dbWorker.CloseDB();
        }
        private void buttonCheckHours_Click(object sender, EventArgs e)
        {
            if (thematicPlanProcessor == null || tableProcessor==null) return;
            this.thematicPlanProcessor.Specialization.CodeSpecialization = this.textBoxCodeSpecialization.Text;
            this.thematicPlanProcessor.Specialization.NameSpecialization = this.textBoxSpecialization.Text;
            this.thematicPlanProcessor.Specialty.CodeSpecialty = this.textBoxCodeSpecialty.Text;
            this.thematicPlanProcessor.Specialty.NameSpecialty = this.textBoxSpecialty.Text;
            this.thematicPlanProcessor.Discipline = this.textBoxNameDisc.Text;
            this.thematicPlanProcessor.Year = int.Parse(this.comboBoxYear.Text);

            DbWorker dbWorker = new DbWorker(connection);
            dbWorker.OpenDB();
            int idDiscipline=0;
            if  (this.thematicPlanProcessor.Specialization.CodeSpecialization=="")
            idDiscipline = dbWorker.GetRecord(new OleDbCommand("SELECT Дисциплины.Код FROM (Специальность INNER JOIN "+
                "(Специализация INNER JOIN УчебныйПлан ON Специализация.IDСпециализации = УчебныйПлан.КодСпециализации) ON "+
                "Специальность.IDСпециальности = УчебныйПлан.КодСпециальности) INNER JOIN (ОбщОбрПрограмма INNER JOIN "+
                "(НазвДисципл INNER JOIN Дисциплины ON НазвДисципл.КодНД = Дисциплины.КодНазвДисц) ON ОбщОбрПрограмма.КодООП = Дисциплины.КодООП) ON "+
                "УчебныйПлан.КодУчПлана = ОбщОбрПрограмма.КодУП "+
                "WHERE (((НазвДисципл.НазванДисципл)= '" + this.thematicPlanProcessor.Discipline + "') AND "+
                "((Специализация.НазвСпециализации)= '" + this.thematicPlanProcessor.Specialization.NameSpecialization + "') " +
                "AND ((Специальность.КодСпециальности)= '" + this.thematicPlanProcessor.Specialty.CodeSpecialty + "') " +
                "AND ((Специальность.НазвСпециальности)='" + this.thematicPlanProcessor.Specialty.NameSpecialty + "') " +
                "AND ((Специализация.КодСпециализации) Is Null))", dbWorker.DbCon));
            else
                idDiscipline = dbWorker.GetRecord(new OleDbCommand("SELECT Дисциплины.Код FROM (Специальность INNER JOIN " +
                "(Специализация INNER JOIN УчебныйПлан ON Специализация.IDСпециализации = УчебныйПлан.КодСпециализации) ON " +
                "Специальность.IDСпециальности = УчебныйПлан.КодСпециальности) INNER JOIN (ОбщОбрПрограмма INNER JOIN " +
                "(НазвДисципл INNER JOIN Дисциплины ON НазвДисципл.КодНД = Дисциплины.КодНазвДисц) ON ОбщОбрПрограмма.КодООП = Дисциплины.КодООП) ON " +
                "УчебныйПлан.КодУчПлана = ОбщОбрПрограмма.КодУП " +
                "WHERE (((НазвДисципл.НазванДисципл)= '" + this.thematicPlanProcessor.Discipline + "') AND " +
                "((Специализация.НазвСпециализации)= '" + this.thematicPlanProcessor.Specialization.NameSpecialization + "') " +
                "AND ((Специальность.КодСпециальности)= '" + this.thematicPlanProcessor.Specialty.CodeSpecialty + "') " +
                "AND ((Специальность.НазвСпециальности)='" + this.thematicPlanProcessor.Specialty.NameSpecialty + "') " +
                "AND ((Специализация.КодСпециализации)= '" + this.thematicPlanProcessor.Specialization.CodeSpecialization + "'))", dbWorker.DbCon));
       

            if (idDiscipline == 0)
            {
                MessageBox.Show("В базе данных не содержится учебный план, соответствующий дисциплине, специальности и специализации из импортируемого Вами темплана.", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                dbWorker.CloseDB();
                return;
            }
            this.thematicPlanProcessor.IdDiscipline = idDiscipline;
            int totalHours = dbWorker.GetRecord(new OleDbCommand("SELECT Дисциплины.ЧасВсего FROM Дисциплины "+
                "WHERE (((Дисциплины.Код)= "+idDiscipline+"))", dbWorker.DbCon));
            int classHours = dbWorker.GetRecord(new OleDbCommand("SELECT Дисциплины.ЧасАудиторных FROM Дисциплины " +
                "WHERE (((Дисциплины.Код)= " + idDiscipline + "))", dbWorker.DbCon)); 
            textBoxClassHoursEdPlan.Text = classHours.ToString();
            textBoxTotalHoursEdPlan.Text=totalHours.ToString();

            dbWorker.CloseDB();

            int totalHoursThemePlan=0;
            int classHoursThemePlan=0;

            foreach (Lesson les in tableProcessor.ListLessons)
            {
                totalHoursThemePlan = totalHoursThemePlan + les.SelfHours;
                classHoursThemePlan = classHoursThemePlan + les.Hours;
            }

            totalHoursThemePlan = totalHoursThemePlan + classHoursThemePlan;
            textBoxClassHoursThemPlan.Text = classHoursThemePlan.ToString();
            textBoxTotalHoursThemPlan.Text = totalHoursThemePlan.ToString();
            if (CheckHours()) buttonWriteThemDb.Enabled = true;
            else 
                MessageBox.Show("Общая сумма часов по ТП не совпадает с количеством часов по соответствующему учебному плану. Для продолжения импорта со значениями часов из ТП выберите \"Игнорировать проверку\".", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                

        }