예제 #1
0
        public void MainData(string Условие)//Генерация списка IDs ремонтов, которые подходят по условию.
        {
            if (Условие == "Spisanie")
            {
                int Столбцы_Spis = 6;//Ко-во столбцов под списание.
                try
                {
                    Auth.Spisanie_ID = new string[КоличествоСписаний];
                    Auth.Запрос      = $"SELECT `ID` FROM `remont` WHERE `dOconchaniyaR` <= \"{ДатаПодСписание}\" AND `Vidano` = 0 ";
                    MySqlConnection Коннектор = new MySqlConnection(Auth.СтрокаПодключения);
                    Коннектор.Open();
                    MySqlCommand    Комманда = new MySqlCommand(Auth.Запрос, Коннектор);
                    MySqlDataReader езультат = Комманда.ExecuteReader();
                    int             Clc      = 0;
                    while (езультат.Read())
                    {
                        string Ячейка = езультат[0].ToString();
                        Auth.Spisanie_ID[Clc] = Ячейка;
                        Clc = ++Clc;
                    }
                    Clc = 0;
                    Отключиться(Коннектор);
                }
                catch (Exception)
                {
                    MessageBox.Show("Не удалось получить список ремонтов под списание.", "Err");
                    Exit("server.exe");
                    Exit("httpd_usbwv8.exe");
                    Exit("mysqld_usbwv8.exe");
                    System.Environment.Exit(0);
                    throw;
                }
                try//Формируем таблицу
                {
                    int строка = 1;
                    Auth.Spisanie = new string[КоличествоСписаний, Столбцы_Spis];
                    MySqlConnection Коннектор = new MySqlConnection(Auth.СтрокаПодключения);// Обьявляем cBase как MySqlConnection(переменная строки подключения)
                    for (int i = 0; i < КоличествоСписаний; i++)
                    {
                        Auth.Запрос = $"SELECT `ID`,`Type`,`Proizv`,`Model`,`dOconchaniyaR`,`Filial_Now` FROM `remont` WHERE `ID`={Auth.Spisanie_ID[i]}";
                        MySqlCommand Комманда = new MySqlCommand(Auth.Запрос, Коннектор);
                        Коннектор.Open();
                        MySqlDataReader езультат = Комманда.ExecuteReader();
                        езультат.Read();
                        for (int ячейка = 0; ячейка < Столбцы_Spis; ячейка++)
                        {
                            Auth.Spisanie[i, ячейка] = езультат[ячейка].ToString();
                            if (ячейка == 4)
                            {
                                Auth.Spisanie[i, ячейка] = DateTime.Parse(Auth.Spisanie[i, ячейка]).ToString("dd'.'MM'.'yyyy");
                            }//попытка автозамены даты "На лету"
                            if (ячейка == 5)
                            {
                                Auth.Spisanie[i, ячейка] = Auth.Filial_All[int.Parse(Auth.Spisanie[i, ячейка]) - 1, 2];
                            }//попытка автозамены филиала "На лету"
                        }
                        строка = ++строка;
                        Отключиться(Коннектор);
                    }
                    int L = Auth.Spisanie.Length;
                    int H = Auth.Spisanie.Length / Столбцы_Spis;
                    L /= H;
                    for (int i = 0; i < H; i++)
                    {
                        string[] Tmp = new string[L];
                        for (int j = 0; j < L; j++)
                        {
                            Tmp[j] = Auth.Spisanie[i, j];
                        }
                        ПодготовкаDataGrid(Tmp, dgSpisanie);
                    }
                }
                catch (Exception)
                {
                    MessageBox.Show("Не удалось сформировать список ремонтов под списание.", "Err");
                    Exit("server.exe");
                    Exit("httpd_usbwv8.exe");
                    Exit("mysqld_usbwv8.exe");
                    System.Environment.Exit(0);
                    throw;
                }
            }
            else
            {
                int nGot   = 0;
                int nProbl = 0;
                try
                {
                    Auth.Запрос = $"SELECT COUNT(*) FROM `remont` WHERE `{Условие}` = 1 AND Vidano = 0";
                    MySqlConnection Коннектор = new MySqlConnection(Auth.СтрокаПодключения);
                    Коннектор.Open();
                    MySqlCommand    Комманда = new MySqlCommand(Auth.Запрос, Коннектор);
                    MySqlDataReader езультат = Комманда.ExecuteReader();
                    int             Clc      = 0;
                    while (езультат.Read())
                    {
                        string sN = езультат[0].ToString();
                        if (Условие == "Otremontirovano")
                        {
                            nGot = int.Parse(sN);
                        }
                        else if (Условие == "Problem")
                        {
                            nProbl = int.Parse(sN);
                        }
                        Clc = ++Clc;
                    }
                    Clc = 0;
                    Отключиться(Коннектор);
                }
                catch (Exception)
                {
                    throw;
                }
                емонты Rem     = new  емонты();
                int    Столбцы = 6;
                Rem.ГотовыеРемонты           = new string[nGot];
                Rem.МассивГотовыхРемонтов    = new string[nGot, Столбцы];
                Rem.ПроблемныеРемонты        = new string[nProbl];
                Rem.МассивПроблемныхРемонтов = new string[nProbl, Столбцы];
                if (nGot != 0)
                {
                    try
                    {
                        Auth.Запрос = $"SELECT `ID` FROM `remont` WHERE {Условие} = 1 AND Vidano = 0";
                        MySqlConnection Коннектор = new MySqlConnection(Auth.СтрокаПодключения);
                        Коннектор.Open();
                        MySqlCommand    Комманда = new MySqlCommand(Auth.Запрос, Коннектор);
                        MySqlDataReader езультат = Комманда.ExecuteReader();
                        int             Clc      = 0;
                        while (езультат.Read())
                        {
                            езультат[0].ToString();
                            string Ячейка = езультат[0].ToString();
                            if (Условие == "Otremontirovano")
                            {
                                Rem.ГотовыеРемонты[Clc] = Ячейка;
                            }
                            Clc = ++Clc;
                        }
                        Clc = 0;
                        Отключиться(Коннектор);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Не удалось получить количество готовых ремонтов.", "Err");
                        Exit("server.exe");
                        Exit("httpd_usbwv8.exe");
                        Exit("mysqld_usbwv8.exe");
                        System.Environment.Exit(0);
                        throw;
                    }
                    if (Условие == "Otremontirovano")
                    {
                        int             строка    = 1;
                        MySqlConnection Коннектор = new MySqlConnection(Auth.СтрокаПодключения);// Обьявляем cBase как MySqlConnection(переменная строки подключения)
                        for (int i = 0; i < nGot; i++)
                        {
                            Коннектор.Open();
                            if (Условие == "Otremontirovano")
                            {
                                Auth.Запрос = $"SELECT `ID`,`Type`,`Proizv`,`Model`,`dOconchaniyaR`,`ID_Master` FROM `remont` WHERE `ID`={Rem.ГотовыеРемонты[i]}";
                            }
                            MySqlCommand    Комманда = new MySqlCommand(Auth.Запрос, Коннектор);
                            MySqlDataReader езультат = Комманда.ExecuteReader();
                            езультат.Read();
                            for (int ячейка = 0; ячейка < Столбцы; ячейка++)
                            {
                                езультат[ячейка].ToString();
                                if (Условие == "Otremontirovano")
                                {
                                    Rem.МассивГотовыхРемонтов[(строка - 1), ячейка] = езультат[ячейка].ToString();
                                    if (ячейка == 4)
                                    {
                                        Rem.МассивГотовыхРемонтов[(строка - 1), ячейка] = DateTime.Parse(Rem.МассивГотовыхРемонтов[(строка - 1), ячейка]).ToString("dd'.'MM'.'yyyy");
                                    }
                                    if (ячейка == 5)
                                    {
                                        int temp = int.Parse(Rem.МассивГотовыхРемонтов[(строка - 1), ячейка]) - 1;
                                        Rem.МассивГотовыхРемонтов[(строка - 1), ячейка] = Auth.Sotrudnik_All[temp, 2];
                                    }//попытка автозамены "На лету"
                                }
                            }
                            строка = ++строка;
                            Отключиться(Коннектор);
                        }

                        if (Условие == "Otremontirovano")
                        {
                            int L = Rem.МассивГотовыхРемонтов.Length;
                            int H = Rem.МассивГотовыхРемонтов.Length / 6;
                            L /= H;
                            for (int i = 0; i < H; i++)
                            {
                                string[] Tmp = new string[L];
                                for (int j = 0; j < L; j++)
                                {
                                    Tmp[j] = Rem.МассивГотовыхРемонтов[i, j];
                                }
                                ПодготовкаDataGrid(Tmp, dgReady);
                            }
                        }
                    }
                    else if (true)
                    {
                        MessageBox.Show("Ошибка инициализации", "Критическая ошибка");
                        Exit("server.exe");
                        Exit("httpd_usbwv8.exe");
                        Exit("mysqld_usbwv8.exe");
                        System.Environment.Exit(0);
                    }
                }
                else if (nProbl != 0)
                {
                    try
                    {
                        Auth.Запрос = $"SELECT `ID` FROM `remont` WHERE {Условие} = 1 AND Vidano = 0";
                        MySqlConnection Коннектор = new MySqlConnection(Auth.СтрокаПодключения);
                        Коннектор.Open();
                        MySqlCommand    Комманда = new MySqlCommand(Auth.Запрос, Коннектор);
                        MySqlDataReader езультат = Комманда.ExecuteReader();
                        int             Clc      = 0;
                        while (езультат.Read())
                        {
                            езультат[0].ToString();
                            string Ячейка = езультат[0].ToString();
                            if (Условие == "Otremontirovano")
                            {
                                Rem.ГотовыеРемонты[Clc] = Ячейка;
                            }
                            else if (Условие == "Problem")
                            {
                                Rem.ПроблемныеРемонты[Clc] = Ячейка;
                            }
                            Clc = ++Clc;
                        }
                        Clc = 0;
                        Отключиться(Коннектор);
                    }
                    catch (Exception)
                    {
                        MessageBox.Show("Не удалось получить количество готовых ремонтов.", "Err");
                        Exit("server.exe");
                        Exit("httpd_usbwv8.exe");
                        Exit("mysqld_usbwv8.exe");
                        System.Environment.Exit(0);
                        throw;
                    }
                    if (Условие == "Problem")
                    {
                        int             строка    = 1;
                        MySqlConnection Коннектор = new MySqlConnection(Auth.СтрокаПодключения);// Обьявляем cBase как MySqlConnection(переменная строки подключения)
                        for (int i = 0; i < nProbl; i++)
                        {
                            Коннектор.Open();
                            if (Условие == "Problem")
                            {
                                Auth.Запрос = $"SELECT `ID`,`Type`,`Proizv`,`Model`,`DateOfPriem`,`Prinyal` FROM `remont` WHERE `ID`={Rem.ПроблемныеРемонты[i]}";
                            }

                            MySqlCommand    Комманда = new MySqlCommand(Auth.Запрос, Коннектор);
                            MySqlDataReader езультат = Комманда.ExecuteReader();
                            езультат.Read();
                            for (int ячейка = 0; ячейка < Столбцы; ячейка++)
                            {
                                езультат[ячейка].ToString();
                                if (Условие == "Problem")
                                {
                                    Rem.МассивПроблемныхРемонтов[(строка - 1), ячейка] = езультат[ячейка].ToString();
                                    if (ячейка == 4)
                                    {
                                        Rem.МассивПроблемныхРемонтов[i, ячейка] = DateTime.Parse(Rem.МассивПроблемныхРемонтов[i, ячейка]).ToString("dd'.'MM'.'yyyy");
                                    }
                                    if (ячейка == 5)
                                    {
                                        int temp = int.Parse(Rem.МассивПроблемныхРемонтов[(строка - 1), ячейка]) - 1;
                                        Rem.МассивПроблемныхРемонтов[(строка - 1), ячейка] = Auth.Sotrudnik_All[temp, 2];
                                    }//попытка автозамены "На лету"
                                }
                            }
                            строка = ++строка;
                            Отключиться(Коннектор);
                        }

                        if (Условие == "Problem")
                        {
                            int L = Rem.МассивПроблемныхРемонтов.Length;
                            int H = Rem.МассивПроблемныхРемонтов.Length / 6;
                            L /= H;
                            for (int i = 0; i < H; i++)
                            {
                                string[] Tmp = new string[L];
                                for (int j = 0; j < L; j++)
                                {
                                    Tmp[j] = Rem.МассивПроблемныхРемонтов[i, j];
                                }
                                ПодготовкаDataGrid(Tmp, dgProblem);
                            }
                        }
                    }
                }
            }
        }
예제 #2
0
파일: Main.cs 프로젝트: SkorikJR/Service_v1
        }//отключение от БД

        public void ПодготовкаМассивов(string НомерТаблицы)
        {
            Филиалы  Filial = new Филиалы();//Создаем обьекты наших публичных массивов
            Инженеры Ing    = new Инженеры();
            Клиенты  Kl     = new Клиенты();
            емонты   Rem    = new  емонты();

            string Table = "";
            int    Count = 0;
            int    Row   = 0;

            //Отбор логики и переменных по входному числу, которое отвечает за выбор таблицы и инициализацию
            //соответствующего двумерного массива с высотой "Count" и статической шириной "Row"
            if (int.Parse(НомерТаблицы) == 1)
            {
                Table = СписокТаблиц[0];
                Count = filial;
                Row   = 6;
                Filial.МассивФилиалов = new string[filial, Row];
            }
            else if (int.Parse(НомерТаблицы) == 2)
            {
                Table = СписокТаблиц[1];                          //название таблицы из массива
                Count = ingeeneer;                                //количество записей, получаем в Form_load
                Row   = 5;                                        //статическое количество столбцов
                Ing.МассивИнженеров = new string[ingeeneer, Row]; //инициализируем массив
            }
            else if (int.Parse(НомерТаблицы) == 3)
            {
                Table             = СписокТаблиц[2];
                Count             = klient;
                Row               = 5;
                Kl.МассивКлиентов = new string[klient, Row];
            }
            else if (int.Parse(НомерТаблицы) == 4)
            {
                Table = СписокТаблиц[3];
                Count = remont;
                Row   = 21;
                Rem.МассивРемонтов = new string[remont, Row];
            }
            else
            {
                MessageBox.Show("Что-то пошло не так, обратитесь к поставщику БД!");
            }
            MySqlConnection Коннектор = new MySqlConnection(СтрокаПодключения);// Обьявляем cBase как MySqlConnection(переменная строки подключения)
            int             строка    = 1;

            for (int i = 0; i < Count; i++)//цикл выгрузки значений в обьявленные массивы (Внешний цикл - строки, а внутренний - ячейки)
            {
                Коннектор.Open();
                Запрос = $"SELECT * FROM `{Table}` WHERE `ID`={строка}";
                MySqlCommand    Комманда = new MySqlCommand(Запрос, Коннектор);
                MySqlDataReader езультат = Комманда.ExecuteReader();
                езультат.Read();
                for (int ячейка = 0; ячейка < Row; ячейка++)
                {
                    езультат[ячейка].ToString();
                    //Отбор логики и переменных по входному числу, которое отвечает за выбор массива, который соответствует таблице
                    if (int.Parse(НомерТаблицы) == 1)
                    {
                        Filial.МассивФилиалов[(строка - 1), ячейка] = езультат[ячейка].ToString();
                    }
                    else if (int.Parse(НомерТаблицы) == 2)
                    {
                        Ing.МассивИнженеров[(строка - 1), ячейка] = езультат[ячейка].ToString();
                    }
                    else if (int.Parse(НомерТаблицы) == 3)
                    {
                        Kl.МассивКлиентов[(строка - 1), ячейка] = езультат[ячейка].ToString();
                    }
                    else if (int.Parse(НомерТаблицы) == 4)
                    {
                        Rem.МассивРемонтов[(строка - 1), ячейка] = езультат[ячейка].ToString();
                    }
                    else
                    {
                        MessageBox.Show("Что-то пошло не так, обратитесь к поставщику БД!");
                    }
                }
                строка = ++строка;
                Отключиться(Коннектор);
            }
            this.Text           = $"Подключение к {server}  выполнено успешно!";
            bZapolnenie.Enabled = true;
        }