Ejemplo n.º 1
0
        static public bool UpdateFromBD(InteractionWithBase oConn, string listName, SensitiveElement SelectElement)
        {
            try
            {
                Dictionary <string, object> UpdateID = new Dictionary <string, object>
                {
                    { "ID", SelectElement.Filds["ID"] }
                };
                SensitiveElement UpdateElement = new SensitiveElement(UpdateID);
                if (SelectFromBD(oConn, listName, UpdateElement).Count == 0)
                {
                    throw new ErrorDeleteException("Ошибка! Такой элемент не содержится в БД.");
                }
                if (SelectFromBD(oConn, listName, UpdateElement).Count > 1)
                {
                    throw new Exception("В БД содержатся несколько элементов с одним ID");
                }
                //  Формирование запроса на обновление
                string request = "update [БД$]";
                string set     = " set";
                foreach (string s in SelectElement.GetListHead())
                {
                    set += String.Format(" {0} = \"{1}\",", s, SelectElement.Filds[s]);
                }
                //  Удалить последнюю запятую
                set      = set.Remove(set.Length - 1);
                request += set;

                /*
                 * request += String.Format(" set Номер_блока = \"{1}\", Номер_СИОМ = \"{2}\", Uвыx_лев ={3}, Uвых_прав = {4}, СПИлев = {5}, СПИправ = {6}, LСИОМлев = {7}, LСИОМправ = {8}, Uвк = {9}, СПИвк = {10}, Uпост = {11}, LВКлев = {12}, LВКправ = {13}, ТД = \"{14}\", IsExperemental = \"{15}\"",
                 *              SelectElement.Id, SelectElement.NumberVK, SelectElement.NumberSIOM, SelectElement.SignalLeftSIOM, SelectElement.SignalRigthSIOM,
                 *              SelectElement.SPILeftSIOM, SelectElement.SPIRigthSIOM, SelectElement.LengthLeftSIOM, SelectElement.LengthRigthSIOM,
                 *              SelectElement.SignalVK, SelectElement.SPIVK, SelectElement.ConstantSignal, SelectElement.LengthLeftVK, SelectElement.LengthRigthVK,
                 *              SelectElement.NumberTemperatureSensor, SelectElement.IsExperement);
                 */
                request += String.Format(" where ID = \"{0}\"", SelectElement.Filds["ID"]);
                oConn.OpenBD();
                GetAdapter(oConn, request).Fill(new DataTable());
                oConn.CloseBD();
                return(true);
            } catch (ErrorDeleteException ex)
            {
                MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK);
                return(false);
            }
            catch
            {
                MessageBox.Show("Возникла ошибка на операции обновления строки. Обратитесь к рукожопу, который делал эту программу", "Рукожёп детектед", MessageBoxButtons.OK);
                throw;
            }
        }
Ejemplo n.º 2
0
 // Метод, который формирует адаптер. Не вижу смысла его детлать, но рекомендуют весь повторяющийся код делать
 // в отдельный метод, поэтому сделал
 static private OleDbDataAdapter GetAdapter(InteractionWithBase oConn, string request)
 {
     try
     {
         OleDbDataAdapter oAdapt = new OleDbDataAdapter();
         OleDbCommand     oCmd   = new OleDbCommand();
         oCmd.Connection      = oConn.oConn;
         oCmd.CommandText     = request;
         oAdapt.SelectCommand = oCmd;
         return(oAdapt);
     } catch
     {
         MessageBox.Show("Возникла ошибка на операции создания адаптера. Обратитесь к рукожопу, который делал эту программу", "Рукожёп детектед", MessageBoxButtons.OK);
         throw;
     }
 }
Ejemplo n.º 3
0
 //  Этом метод ищет в БД блоки со всеми полями, которые не равны 0 в передоваемом блоке
 static public List <SensitiveElement> SelectFromBD(InteractionWithBase oConn, string listName, SensitiveElement SelectElement)
 {
     try
     {
         DataTable tDT     = new DataTable();
         string    request = String.Format("select * from[{0}$]", listName); //  Сам запрос
         request += FormFildRequest(SelectElement);
         oConn.OpenBD();
         GetAdapter(oConn, request).Fill(tDT);
         oConn.CloseBD();
         return(ParseTable(tDT));
     } catch
     {
         MessageBox.Show("Возникла ошибка на операции выборки из БД. Обратитесь к рукожопу, который делал эту программу", "Рукожёп детектед", MessageBoxButtons.OK);
         throw;
     }
 }
Ejemplo n.º 4
0
 //  Метод вставки в БД
 static public bool InsertFromBD(InteractionWithBase oConn, string listName, SensitiveElement SelectElement)
 {
     try
     {
         //  Проверка на дубляж
         SensitiveElement findElement = new SensitiveElement(new Dictionary <string, object> {
             { "ID", SelectElement.Filds["ID"] }
         });
         if (SelectFromBD(oConn, listName, findElement).Count != 0)
         {
             throw new ErrorInsertExceptions("Ошибка! Такой элемент уже содержится в БД.");
         }
         if (SelectElement.Filds["ID"] == null)
         {
             throw new ErrorInsertExceptions("Ошибка! Элемент должен содержать ID.");
         }
         //  Составление части запроса на вставку со столбцами
         string heads  = "(";
         string values = " values (";
         foreach (string s in SelectElement.GetListHead())
         {
             heads  += String.Format(" {0},", s);
             values += String.Format(" \"{0}\",", SelectElement.Filds[s]);
         }
         //  Удалить последние запятые и добавить закрывающеюся скобку
         heads  = heads.Remove(heads.Length - 1); heads += ")";
         values = values.Remove(values.Length - 1); values += ")";
         string request = String.Format("insert into [БД$] {0} {1}", heads, values);
         oConn.OpenBD();
         GetAdapter(oConn, request).Fill(new DataTable());
         oConn.CloseBD();
         return(true);
     } catch (ErrorInsertExceptions ex)
     {
         MessageBox.Show(ex.Message, "Ошибка", MessageBoxButtons.OK);
         return(false);
     }
     catch
     {
         MessageBox.Show("Возникла ошибка на операции вставки строки. Обратитесь к рукожопу, который делал эту программу", "Рукожёп детектед", MessageBoxButtons.OK);
         throw;
     }
 }
Ejemplo n.º 5
0
        //  Метод заполнения диаграмм точками.
        private void CreateDateChart(string directionFile)
        {
            try
            {
                //  Запрос в файл с данными для получения точек, по каторым строится диаграмма
                InteractionWithBase oCon = new InteractionWithBase(directionFile);
                oCon.SettingConnectToBD();
                List <SensitiveElement> PointsOfChart = QueriesToBD.SelectFromBD(oCon, "Паспорт СИОМ", new SensitiveElement());

                //  Настройка диаграмм
                Series SChartSPI_SPI1 = new Series("СПИ 1");
                SChartSPI_SPI1.ChartType = SeriesChartType.Line;
                Series SChartSPI_SPI2 = new Series("СПИ 2");
                SChartSPI_SPI2.ChartType = SeriesChartType.Line;
                Series SChartTemperature = new Series("Температура");
                SChartTemperature.ChartType = SeriesChartType.Line;
                Series SChartLoss = new Series("Потери");
                SChartLoss.ChartType = SeriesChartType.Line;
                Series SChartKD = new Series("Коофицент деления");
                SChartKD.ChartType = SeriesChartType.Line;
                Series SChartPower1 = new Series("Мощьность 1");
                SChartPower1.ChartType = SeriesChartType.Line;
                Series SChartPower2 = new Series("Мощьность 2");
                SChartPower2.ChartType = SeriesChartType.Line;

                foreach (SensitiveElement s in PointsOfChart)
                {
                    //  Составление точек диаграммы СПИ
                    //  Основные параметры для составления точек
                    double time        = (double)s.Filds["Time (s)"];
                    double spi1        = (double)s.Filds["ER1(dB)"];
                    double spi2        = (double)s.Filds["ER2(dB)"];
                    double power1      = (double)s.Filds["POW1(mW)"];
                    double power2      = (double)s.Filds["POW2(mW)"];
                    double temperature = (double)s.Filds["Темп#, °С"];
                    double kd          = (double)s.Filds["КД по лев# кан#, %"];
                    double loss        = (double)s.Filds["Потери, дБ"];

                    //  Поиск минималных и максимальных точкд для отображения диаграмм
                    if (dMaxSPI < spi1)
                    {
                        dMaxSPI = spi1;
                    }
                    if (dMaxSPI < spi2)
                    {
                        dMaxSPI = spi1;
                    }
                    if (dMinSPI > spi1)
                    {
                        dMinSPI = spi1;
                    }
                    if (dMinSPI > spi2)
                    {
                        dMinSPI = spi2;
                    }
                    if (dMaxPower < power1)
                    {
                        dMaxPower = power1;
                    }
                    if (dMaxPower < power2)
                    {
                        dMaxPower = power2;
                    }
                    if (dMinPower > power1)
                    {
                        dMinPower = power1;
                    }
                    if (dMinPower > power2)
                    {
                        dMinPower = power2;
                    }
                    if (dMaxKD < kd)
                    {
                        dMaxKD = kd;
                    }
                    if (dMinKD > kd)
                    {
                        dMinKD = kd;
                    }
                    if (dMaxLoss < loss)
                    {
                        dMaxLoss = loss;
                    }
                    if (dMinLoss > loss)
                    {
                        dMinLoss = loss;
                    }

                    //  Диаграмма СПИ
                    DataPoint DPspi1        = new DataPoint(time, spi1);
                    DataPoint DPspi2        = new DataPoint(time, spi2);
                    DataPoint DPtemperature = new DataPoint(time, temperature);
                    //  Диаграмма Потери\КД
                    DataPoint DPloss = new DataPoint(time, loss);
                    DataPoint DPkd   = new DataPoint(time, kd);
                    //  Диаграмма Мощности
                    DataPoint DPpower1 = new DataPoint(time, power1);
                    DataPoint DPpower2 = new DataPoint(time, power2);

                    //  Добавление точек к шкале диаграммы
                    SChartSPI_SPI1.Points.Add(DPspi1);
                    SChartSPI_SPI2.Points.Add(DPspi2);
                    SChartTemperature.Points.Add(DPtemperature);
                    SChartPower1.Points.Add(DPpower1);
                    SChartPower2.Points.Add(DPpower2);
                    SChartKD.Points.Add(DPkd);
                    SChartLoss.Points.Add(DPloss);
                }


                //  Добавление графиков к диаграммам
                ChartSPI.Series.Add(SChartSPI_SPI1);
                ChartSPI.Series.Add(SChartSPI_SPI2);
                ChartSPI.Series.Add(SChartTemperature);
                ChartLoss.Series.Add(SChartLoss);
                ChartLoss.Series.Add(SChartKD);
                ChartPower.Series.Add(SChartPower1);
                ChartPower.Series.Add(SChartPower2);
            } catch
            {
                MessageBox.Show("Возникла ошибка на операции составления графиков СИОМ. Обратитесь к рукожопу, который делал эту программу", "Рукожёп детектед", MessageBoxButtons.OK);
                throw;
            }
        }
Ejemplo n.º 6
0
        //  Метод нахождения данных диаграммы
        private void CreateDateChart(string directionFile)
        {
            try
            {
                //  Запрос в файл с данными для получения точек, по каторым строится диаграмма
                InteractionWithBase oCon = new InteractionWithBase(directionFile);
                oCon.SettingConnectToBD();
                string spiVK   = String.Format("ER{0}(dB)", NumberVKinChart);
                string powerVK = String.Format("POW{0}(mW)", NumberVKinChart);
                Dictionary <string, object> fildsOfVK = new Dictionary <string, object>();
                fildsOfVK.Add("Time (s)", null);
                fildsOfVK.Add(spiVK, null);
                fildsOfVK.Add(powerVK, null);
                List <SensitiveElement> PointsOfChart = QueriesToBD.SelectFromBD(oCon, "Лист1", new SensitiveElement());

                //  Настройка диаграмм
                Series SChartSPI_SPI = new Series("СПИ");
                SChartSPI_SPI.ChartType = SeriesChartType.Line;
                Series SChartPower = new Series("Мощьность");
                SChartPower.ChartType = SeriesChartType.Line;

                foreach (SensitiveElement s in PointsOfChart)
                {
                    //  Составление точек диаграммы СПИ
                    //  Основные параметры для составления точек
                    double time  = (double)s.Filds["Time (s)"];
                    double spi   = (double)s.Filds[spiVK];
                    double power = (double)s.Filds[powerVK];

                    //  Поиск минималных и максимальных точкд для отображения диаграмм
                    if (dMaxSPI < spi)
                    {
                        dMaxSPI = spi;
                    }
                    if (dMinSPI > spi)
                    {
                        dMinSPI = spi;
                    }
                    if (dMaxPower < power)
                    {
                        dMaxPower = power;
                    }
                    if (dMinPower > power)
                    {
                        dMinPower = power;
                    }

                    //  Диаграмма СПИ
                    DataPoint DPspi = new DataPoint(time, spi);
                    //  Диаграмма Мощности
                    DataPoint DPpower = new DataPoint(time, power);

                    //  Добавление точек к шкале диаграммы
                    SChartSPI_SPI.Points.Add(DPspi);
                    SChartPower.Points.Add(DPpower);
                }


                //  Добавление графиков к диаграммам
                ChartVK.Series.Add(SChartSPI_SPI);
                ChartVK.Series.Add(SChartPower);
            }
            catch
            {
                MessageBox.Show("Возникла ошибка на операции составления графиков ВК. Обратитесь к рукожопу, который делал эту программу", "Рукожёп детектед", MessageBoxButtons.OK);
                throw;
            }
        }