Dziwny exception związany z konwersją liczby ToString("N2")

0

Cześć.

Piszę aplikacje WPF do obsługi faktury opartą na bazie danych DB4OBJ

Mam problem z konwersją liczby do ToString("N2").

W momencie dodawania nowego obiektu ( towaru ) wywala mi exception.

user image

Wpisuje 3560 bo konwersja ma zrobić z tego 35.60 ale ta wartość chyba błędnie sie zapisuje albo zapisuje nulla ;/

W zestawieniu na datagridzie nie wpisuje mi się cena:

user image

A gdy staram się dokonać edycji towaru wywala mi exception:

user image

W taki sposób dodaje nowy produkt do bazy:

private void AddNewComodityToInvoiceButton_Click(object sender, RoutedEventArgs e)
        {
            LabelError.Content = "";
            LabelError.Foreground = Brushes.Red;

            // sprawdzamy czy pola sa puste
            foreach (var tbx in tbxList.Where(textBox => textBox.Text == ""))
            {
                LabelError.Visibility = Visibility.Visible;
                LabelError.Content += "Pole nazwa jest wymagane!";
                return;
            }

            // sprawdzamy czy combobox jest pusty
            if (CbSearchList.SelectedValue == null)
            {
                LabelError.Visibility = Visibility.Visible;
                LabelError.Content += "Proszę wybrać stawkę!";
                return;
            }

            if (Regex.IsMatch(NettoPriceTextBox.Text, @"(?<=^| )\d+(\.\d+)?(?=$| )") == false)
            {
                LabelError.Visibility = Visibility.Visible;
                LabelError.Content += "Pole cena netto musi zawierać tylko cyfry!";
                return;
            }

            if (Regex.IsMatch(QuantityTextBox.Text, @"\d") == false)
            {
                LabelError.Visibility = Visibility.Visible;
                LabelError.Content += "Pole ilosc może zawierać tylko cyfry!";
                return;
            }

            // ustawianie kropki w automatyczny sposób
            if (NettoPriceTextBox.Text.Count() >= 3 && NettoPriceTextBox.Text.Contains(".") == false)
            {
                var newString = NettoPriceTextBox.Text.Insert(NettoPriceTextBox.Text.Count() - 2, ".");
                NettoPriceTextBox.Text = newString;
            }

            // jeśli faktura jest pusta 
            if (invoice.Commoditions == null)
                invoice.Commoditions = new List<InvoicePossition>();

            // dodawanie nowych towarów
            invoice.Commoditions.Add(new InvoicePossition
            {
                PriceNetto = NettoPriceTextBox.Text,
                Quantity = Convert.ToInt32(QuantityTextBox.Text),
                Commodity = new Commodity
                {
                    NettoPrice = NettoPriceTextBox.Text,
                    CommodityName = CommoditionNameTextBox.Text,
                    Amount = CbSearchList.SelectedValue.ToString()
                }
            });

            DataBaseConnection.db.Store(invoice);
            DataBaseConnection.db.Commit();

            LabelError.Visibility = Visibility.Visible;
            LabelError.Foreground = Brushes.Green;
            LabelError.Content = "Dodano Towar pomyślnie!";

            foreach (var contr in tbxList)
            {
                contr.Text = "";
            }
        }
 

Jak to rozwiązać?

0

Niby tak to wygląda w trybie debuggowania:

user image

1 użytkowników online, w tym zalogowanych: 0, gości: 1