// Deleting Price
        public void DeletingPrice(int IDOfDrugstore, int IDOfProduct)
        {
            //
            // Searching Price
            //
            object[] KeyOfRow = new object[] { IDOfDrugstore, IDOfProduct };
            DataRow  FindRow  = PriceList.Rows.Find(KeyOfRow);

            if (FindRow != null)
            {
                //
                FindRow.Delete();
                //
                // Updating
                //
                ExecutedUpdatingOfPriceList();
                //
                // Checking Of Count Prices
                //
                if (PriceList.Rows.Count == 0)
                {
                    //
                    // Change Of Status Of PriceList
                    //
                    CurrentStatus = StatusOfPriceList.SupplementingPriceList;
                    ChangeOfStatusOfPriceList(CurrentStatus);
                }
            }
        }
        // Change Of Status Of PriceList
        public void ChangeOfStatusOfPriceList(StatusOfPriceList NewStatus)
        {
            //
            // Updating Status Of PriceList
            //
            MySqlCommand UpdatingStatus = new MySqlCommand(
                String.Format("UPDATE service SET Value = {0} WHERE Id_Service = 6;",
                              (NewStatus == StatusOfPriceList.FullPriceList) ? "1" : "0"), ConnectionToBase);

            try
            {
                //
                // !!!
                //
                OpeningConnection(UpdatingStatus.Connection);
                //
                UpdatingStatus.ExecuteScalar();
                //
                ClosingConnection(UpdatingStatus.Connection);
            }
            catch (Exception E)
            {
                //
                ClosingConnection(UpdatingStatus.Connection);
                //
                RecordingInLogFile(String.Format("ERROR Ошибка при обновлении статуса Прайс-Листа: {0}", E.Message));
            }
        }
        // Change Of Status Of PriceList
        public void ChangeOfStatusOfPriceList(StatusOfPriceList NewStatus)
        {
            //
            bool AllPrices = false;

            //
            // Change Of Status
            //
            CurrentStatus = NewStatus;
            if (CurrentStatus == StatusOfPriceList.FullPriceList)
            {
                AllPrices = true;
            }

            /*
             * //
             * // Updating AllPrices
             * //
             * foreach (DataRow CurrentPrice in PriceList.Rows)
             *  CurrentPrice["AllPrices"] = AllPrices;
             */
            //
            // Updating
            //
            //UPDATE exp_price_list SET Is_all_price = {0} WHERE Is_all_price <> {0};
            MySqlCommand UpdatingStatus = new MySqlCommand(
                String.Format("UPDATE service SET Value = {0} WHERE Id_Service = 6;",
                              AllPrices ? "1" : "0"),
                ConnectionToBase01);

            try
            {
                bool IsOpen = false;
                if (UpdatingStatus.Connection.State == ConnectionState.Open)
                {
                    IsOpen = true;
                }
                if (!IsOpen)
                {
                    UpdatingStatus.Connection.Open();
                }
                //
                UpdatingStatus.ExecuteScalar();
                //
                if (!IsOpen)
                {
                    UpdatingStatus.Connection.Close();
                }
            }
            catch (Exception E) { ReturningMessageAboutError("Ошибка при обновлении статуса строк", E, false); }
            finally { UpdatingStatus.Connection.Close(); }
            //
        }
        // Deleting All Prices
        public void DeletingAllPrices()
        {
            //
            // Giving Status Of Deleting
            //
            foreach (DataRow CurrentPrice in PriceList.Rows)
            {
                CurrentPrice.Delete();
            }
            //
            PriceList.AcceptChanges();
            //
            // Updating
            //
            MySqlCommand DeletingPrices = new MySqlCommand("DELETE FROM exp_price_list;", ConnectionToBase01);

            try
            {
                bool IsOpen = false;
                if (DeletingPrices.Connection.State == ConnectionState.Open)
                {
                    IsOpen = true;
                }
                if (!IsOpen)
                {
                    DeletingPrices.Connection.Open();
                }
                //
                DeletingPrices.ExecuteScalar();
                //
                if (!IsOpen)
                {
                    DeletingPrices.Connection.Close();
                }
            }
            catch (Exception E) { ReturningMessageAboutError("Ошибка при удалении строк Прайс-листа", E, false); }
            finally { DeletingPrices.Connection.Close(); }
            //
            // COM
            //
            //ExecutedUpdatingOfPriceList();
            //TypeOfUpdating = "UP";
            //ExecutedThreadingsOfUpdatingOfPriceList();
            //
            // Change Of Status Of PriceList
            //
            CurrentStatus = StatusOfPriceList.SupplementingPriceList;
            ChangeOfStatusOfPriceList(CurrentStatus);
        }
        // Filling Of PriceList
        private void FillingPriceList(bool CreatingSchema)
        {
            //
            // Clearing PriceList
            //
            PriceList.Clear();
            PriceList.Dispose();
            PriceList = new DataTable("PriceList");
            GC.Collect();
            //
            // Filling With Data
            //
            FillingWithDataOfTable(PriceList, "PriceList", UpdatingOfPriceList, CreatingSchema);
            //
            //if (CreatingSchema)//PriceList.Columns["AllPrices"].AllowDBNull = true;
            //
            // Creation Of Compound Key
            //
            //PriceList.PrimaryKey = new DataColumn[] { PriceList.Columns["ID_PH"], PriceList.Columns["ID_PR"] };

            try { PriceList.PrimaryKey = new DataColumn[] { PriceList.Columns["ID_PH"], PriceList.Columns["ID_PR"] }; }
            catch (Exception E)
            {
                //
                this.RecordingInLogFile(String.Format("Ошибка при создании составного ключа Exp_PL: {0}", E.Message));
                this.RecordingInLogFile("Зачистка Exp_PL");
                //
                // Removal Of Recurrences Of Exp_price_list
                //
                IntegrityOfData IOfD = new IntegrityOfData(StringOfConnection, this.PathToLogFile);
                //
                IOfD.RemovalOfRecurrencesOfPriceList("exp_price_list", true);
                //
                // !!!
                //
                try
                {
                    //
                    PriceList.Clear();
                    PriceList.Dispose();
                    PriceList = new DataTable("PriceList");
                    //
                    FillingWithDataOfTable(PriceList, "PriceList", UpdatingOfPriceList, CreatingSchema);
                    //
                    PriceList.PrimaryKey =
                        new DataColumn[] { PriceList.Columns["ID_PH"], PriceList.Columns["ID_PR"] };
                }
                catch (Exception E2)
                {
                    //
                    this.RecordingInLogFile(
                        String.Format("Ошибка при создании составного ключа Exp_PL: {0}", E2.Message));
                    this.RecordingInLogFile("Очистка Exp_PL");
                    //
                    DeletingAllPrices();
                }
            }
            //
            // Reading Status Of PriceList
            //
            MySqlCommand GettingStatus = new MySqlCommand(
                "SELECT Value FROM service WHERE Id_Service = 6;", ConnectionToBase01);

            try
            {
                bool IsOpen = false;
                if (GettingStatus.Connection.State == ConnectionState.Open)
                {
                    IsOpen = true;
                }
                if (!IsOpen)
                {
                    GettingStatus.Connection.Open();
                }
                //
                int ValueOfStatus = (int)GettingStatus.ExecuteScalar();
                if (ValueOfStatus == 1)
                {
                    CurrentStatus = StatusOfPriceList.FullPriceList;
                }
                else
                {
                    CurrentStatus = StatusOfPriceList.SupplementingPriceList;
                }
                //
                if (!IsOpen)
                {
                    GettingStatus.Connection.Close();
                }
            }
            catch (Exception E) { ReturningMessageAboutError("Ошибка при чтении статуса Прайс-Листа", E, false); }
            finally { GettingStatus.Connection.Close(); }

            /*
             * bool AllPrices = false;
             * if (PriceList.Rows.Count > 0)
             *  AllPrices = (bool)PriceList.Rows[0]["AllPrices"];
             * //
             * if (AllPrices)
             *  CurrentStatus = StatusOfPriceList.FullPriceList;
             * else
             *  CurrentStatus = StatusOfPriceList.SupplementingPriceList;
             */
        }