Неправильная входная строка в формате при добавлении веб-формы - PullRequest
0 голосов
/ 09 ноября 2019

Когда я добавляю итоговое значение текстового поля ввода и хочу показать все итоговые значения текстового поля в другом подзаголовке textBox, почему он показывает ошибку

строка ввода не в правильном формате

string[] arr = new string[4];
arr[0] = comboBox1.SelectedItem.ToString();
arr[1] = textBox1Price.Text;
arr[2] = textBox2Qty.Text;
arr[3] = textBoxTotal.Text;

ListViewItem item = new ListViewItem(arr);
listView1.Items.Add(item);

if (textBoxSubTotal.Text == "" || textBoxSubTotal.Text != "")
{
    textBoxSubTotal.Text = (Convert.ToInt16(textBoxTotal.Text) + 
                            Convert.ToInt16(textBoxSubTotal.Text)).ToString();
}

в полных текстовых полях должны отображаться все итоговые значения

enter image description here

Ответы [ 2 ]

0 голосов
/ 09 ноября 2019

Очень простой подход:

// turn the text of each entry into a number using int.Parse(), so they can be added.
int result = int.Parse(comboBox1.SelectedItem.ToString()) +
             int.Parse(textBox1Price.Text) +
             int.Parse(textBox2Qty.Text) +
             int.Parse(textBoxTotal.Text);

// turn the result back into a string to put on the page.
textBoxSubTotal.Text = result.ToString();
0 голосов
/ 09 ноября 2019

А как насчет этого?

int GetSum(IEnumerable<string> data) 
    => data.Select( txt => { int.TryParse(txt, out var m); return m;}).Sum();

Пример

Console.WriteLine(GetSum(new [] { "100", "200", "xxx" })); //300

Console.WriteLine(GetSum(new [] { "100", "200", "300" })); //600

или

targetComboBox.Text = GetSum( new []{combo1.Text, combo2.Text, ...})?.ToString();

Ноль, если есть ноль?

int? GetSum(IEnumerable<string> data) 
    => data.Select( txt => int.TryParse(txt, out var m) is var b && b ? m : (int?)null) is var parsed 
    && parsed.Any(i => i == null) 
        ? null 
        : parsed.Sum();

Console.WriteLine(GetSum(new [] { "100", "200", "xxx" })); //null

Console.WriteLine(GetSum(new [] { "100", "200", "300" })); //600
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...