Exemplo 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;
            }
        }
Exemplo n.º 2
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;
     }
 }
Exemplo n.º 3
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;
     }
 }