/// <summary>
        /// Получение данных об устройства
        /// </summary>
        /// <param name="param">Параметр поиска (что ищем)</param>
        /// <param name="InventoryNumber">Инвентарный номер устройства</param>
        /// <returns></returns>
        public string getGetDeviceData(string param, string InventoryNumber)
        {
            int    countRead  = 0;
            string deviceData = " ";
            string query      = "SELECT " + param + " FROM device_manager WHERE inventnumber = \"" + InventoryNumber + "\"";

            //Создаём новое соединение
            Connection = new MySqlConnection(GetConnectionString.getStringConnectionData());
            if (OpenConnection())
            {
                MySqlCommand    mySqlCommand = new MySqlCommand(query, Connection);
                MySqlDataReader dataReader   = mySqlCommand.ExecuteReader();

                while (dataReader.Read())
                {
                    deviceData = Convert.ToString(dataReader[param] + "");
                    countRead++;
                }
                if (countRead == 0)
                {
                    throw new Exception("Устройство с заданым id не найдено!");
                }
                dataReader.Close();
                CloseConnection();
                return(deviceData);
            }
            else
            {
                throw new Exception("Возникла ошибка при соединении с сервером.");
                return(deviceData);
            }
        }
Пример #2
0
        /// <summary>
        /// Авторизация
        /// </summary>
        /// <returns>Возвращает кортеж - первый элемент булево значение, второй - список элементов</returns>
        public Tuple <bool, List <string> > LogIn()
        {
            List <string> userData = new List <string>();
            string        HLogin, HPassword;

            try
            {
                HLogin    = EncryptionData.EncryptLogin(Login, Password);
                HPassword = EncryptionData.EncryptPassword(Login, Password);
                DataBaseConnect DBC = new DataBaseConnect(GetConnectionString.getStringConnectionData());
                userData = new List <string>(DBC.getUserInfoFromDataBase(HLogin, HPassword));
                getEmergencyAuthData();
                if (userData != null)
                {
                    return(Tuple.Create(true, userData));
                }
                else
                {
                    return(Tuple.Create(false, userData));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Пользователь не найден", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                return(Tuple.Create(false, userData));
            }
        }
        /* TODO: UPDATE
         * private bool InsertIntoDeviceManager(string table, string inventNumber, string id)
         * {
         *  string query = "INSERT INTO `" + table + "` (`" + inventNumber + "`, `"+ id +"`, `"++"`)";
         *  Connection = new MySqlConnection(GetConnectionString.getStringConnectionData());
         *  if (OpenConnection())
         *  {
         *      MySqlCommand mCom = new MySqlCommand(query, Connection);
         *      CloseConnection();
         *      return true;
         *  }
         *  return false;
         * }*/

        private int SelectMaxId(string table)
        {
            Connection = new MySqlConnection(GetConnectionString.getStringConnectionData());
            if (OpenConnection())
            {
                string       query        = "SELECT max(`id`) FROM \"" + table + "\"";
                MySqlCommand mySqlCommand = new MySqlCommand(query, Connection);
                CloseConnection();
                return(Convert.ToInt32(mySqlCommand.ExecuteScalar().ToString()));
            }
            return(0);
        }
Пример #4
0
        /// <summary>
        /// Выполняет проверку соеднения с сервером баз данных
        /// </summary>
        /// <param name="field">List textbox'ов</param>
        /// <returns>Если соединение установлено, возвращает true, иначе false</returns>
        private bool TestConnectToDb(List <TextBox> field)
        {
            //TODO: codereview + error Connect;

            DataBaseConnect DBC =
                new DataBaseConnect(GetConnectionString.getStringConnectionData(field[0].Text, field[1].Text,
                                                                                field[2].Text, field[3].Text));

            if (DBC.TestConnection())
            {
                return(true);
            }
            return(false);
        }
        /// <summary>
        /// Отправка в базу данных результатов тестирования
        /// </summary>
        /// <param name="resultDataDevices">TestDataStructure.TestDataStruct[] - массив результатов</param>
        /// <returns></returns>

        /*public bool InsertDataDevice(TestDataStructure.TestDataStruct[] resultDataDevices)
         * {
         *  int countDevice = resultDataDevices.Count();    //Число устройств
         *  int counterDev = 0;
         *  int maxId;
         *  List<string> tableList = new List<string>();
         *  List<int> valueList = new List<int>();
         *
         *  try
         *  {
         *
         *      while (counterDev != countDevice)
         *      {
         *          //Получаем id
         *          maxId = SelectMaxId("minus12v");
         *          InsertIntoDeviceParamData("minus12v", SelectMaxId("minus12v"), tableList);
         *          InsertIntoDeviceParamData("plus5v", SelectMaxId("plus5v"), tableList);
         *          InsertIntoDeviceParamData("	plus12vpause", SelectMaxId("plus12vpause"), tableList);
         *          InsertIntoDeviceParamData("plus12v25time", SelectMaxId("plus12v25time"), tableList);
         *          InsertIntoDeviceParamData("plus12v50time", SelectMaxId("plus12v50time"), tableList);
         *          InsertIntoDeviceParamData("plus12v100time", SelectMaxId("plus12v100time"), tableList);
         *          InsertIntoDeviceParamData("reciver_in_diff_v", SelectMaxId("reciver_in_diff_v"), tableList);
         *          InsertIntoDeviceParamData("rise_and_fall_time_signal", SelectMaxId("rise_and_fall_time_signal"), tableList);
         *          InsertIntoDeviceParamData("out_diff_volt", SelectMaxId("out_diff_volt"), tableList);
         *          InsertIntoDeviceParamData("transmitter", SelectMaxId("transmitter"), tableList, valueList);
         *          ///Добавка в другую дичь
         *          InsertIntoDeviceParamData("temperature", SelectMaxId("temperature"), tableList);
         *          //query = "INSERT INTO [counterDev].DeviceInventNumber";
         *          counterDev++;
         *      }
         *      return true;
         *
         *      //Min|Max|Aver
         *  }
         *  catch (Exception exp)
         *  {
         *      return false;
         *  }
         * }*/

        /// <summary>
        /// Вставка данных в таблицу
        /// </summary>
        /// <param name="table">Имя таблицы</param>
        /// <param name="maxId">Предыдущий номер записи в таблице</param>
        /// <param name="paramValue">List параметров</param>
        /// <returns>true в случае удачной вставки</returns>
        private bool InsertIntoDeviceParamData(string table, int maxId, List <double> paramValue)
        {
            string query = "INSERT INTO `" + table + "` (`id`, `minimum`, `medium`, `maximum`) VALUES(" + (maxId + 1) +
                           "," + paramValue[0] + " , " + paramValue[1] + ", " + paramValue[2] + ")";

            Connection = new MySqlConnection(GetConnectionString.getStringConnectionData());
            if (OpenConnection())
            {
                MySqlCommand mCom = new MySqlCommand(query, Connection);
                mCom.ExecuteScalar();
                CloseConnection();
                return(true);
            }
            return(false);
        }
Пример #6
0
 /// <summary>
 /// Опрос счётчика запусков программы.
 /// Если 0 - запуск в первый раз, вход по дежурному паролю.
 /// Иначе через БД
 /// </summary>
 /// <param name="count">Число запусков программы</param>
 private void PollCounterLaunchesProgram(int count)
 {
     if (count == 0)
     {
         Properties.Application_data.user.Default.field_db_host     = "";
         Properties.Application_data.user.Default.field_db_host     = "";
         Properties.Application_data.user.Default.field_db_name     = "";
         Properties.Application_data.user.Default.field_db_user     = "";
         Properties.Application_data.user.Default.field_db_password = "";
     }
     else
     {
         _connection = GetConnectionString.getStringConnectionData();
     }
 }
        /// <summary>
        /// Вставка данных в таблицу (связка множества подтаблиц в одну
        /// </summary>
        /// <param name="table">Имя таблицы</param>
        /// <param name="paramList">List имён таблиц, которые необходимо вставить</param>
        /// <example>queryPart1 `plus12vPause_id`, `plus5v_id`, `minus12v_id`, `plus12v100time_id`, `plus12v50time_id`, `plus12v25time_id`)</example>
        /// <returns></returns>
        private bool InsertIntoDeviceParamData(string table, int maxId, List <string> tableList, List <int> valueList)
        {
            string query = "INSERT INTO `" + table + "` (`id`,  ";

            //Конструирование строки

            query += GenerationOfFirstPartQueryString(tableList);
            query += GenerationOfTwoPartQueryString(valueList);

            Connection = new MySqlConnection(GetConnectionString.getStringConnectionData());
            if (OpenConnection())
            {
                MySqlCommand mCom = new MySqlCommand(query, Connection);
                mCom.ExecuteScalar();
                CloseConnection();
                return(true);
            }
            return(false);
        }
        /// <summary>
        /// Запрос на выборку данных о пользователе
        /// </summary>
        /// <returns></returns>
        public List <string> getUserInfoFromDataBase(string login, string password)
        {
            int           countRead = 0;
            List <string> list      = new List <string>();
            string        query     = "SELECT * FROM employees WHERE login=\"" + login + "\" AND password=\"" + password + "\"";

            //Создаём новое соединение
            Connection = new MySqlConnection(GetConnectionString.getStringConnectionData());
            if (OpenConnection())
            {
                MySqlCommand    mySqlCommand = new MySqlCommand(query, Connection);
                MySqlDataReader dataReader   = mySqlCommand.ExecuteReader();

                while (dataReader.Read())
                {
                    list.Add(dataReader["firstname"] + " ");
                    list.Add(dataReader["secondname"] + " ");
                    list.Add(dataReader["position"] + " ");
                    list.Add(dataReader["login"] + " ");
                    list.Add(dataReader["password"] + " ");
                    countRead++;
                }
                if (countRead == 0)
                {
                    throw new Exception("Пользователь не зарегистрирован в системе.");
                }
                dataReader.Close();
                CloseConnection();
                return(list);
            }
            else
            {
                throw new Exception("Возникла ошибка при соединении с сервером.");
                return(list);
            }
        }
        /// <summary>
        /// Получает имя производителя устройства по инвентарному номеру
        /// </summary>
        /// <param name="invent"></param>
        /// <returns></returns>
        public static string GetDeviceManufacturer(string InventoryId)
        {
            DataBaseConnect DBC = new DataBaseConnect(GetConnectionString.getStringConnectionData());

            return(DBC.getGetDeviceData("manufacturer", InventoryId));
        }
        /// <summary>
        /// Получает описание устройства по инвентарному номеру
        /// </summary>
        /// <param name="InventoryId">String, инвентарный номер устройства</param>
        /// <returns></returns>
        public static string GetDeviceDescription(string InventoryId)
        {
            DataBaseConnect DBC = new DataBaseConnect(GetConnectionString.getStringConnectionData());

            return(DBC.getGetDeviceData("description", InventoryId));
        }