waleed_akre Ответов: 1

Ошибка в строке форматирования


try
           {
               LblDinarKarton.Text =
                       (from DataGridViewRow row in dataGridView6.Rows
                        where Convert.ToDouble( row.Cells[10].FormattedValue.ToString().Replace(",","")) != 0
                        select (Convert.ToDouble(row.Cells[10].FormattedValue.ToString().Replace(",", "")) * Convert.ToDouble(row.Cells[2].FormattedValue.ToString().Replace(",", ""))) + ((Convert.ToDouble(row.Cells[10].FormattedValue.ToString().Replace(",", "")) / Convert.ToDouble(row.Cells[3].FormattedValue.ToString().Replace(",", ""))) * (Convert.ToDouble(row.Cells[4].FormattedValue.ToString().Replace(",", ""))))).Sum().ToString();
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message);
           }


Что я уже пробовал:

try
           {
               LblDinarKarton.Text =
                       (from DataGridViewRow row in dataGridView6.Rows
                        where Convert.ToDouble( row.Cells[10].FormattedValue.ToString().Replace(",","")) != 0
                        select (Convert.ToDouble(row.Cells[10].FormattedValue.ToString().Replace(",", "")) * Convert.ToDouble(row.Cells[2].FormattedValue.ToString().Replace(",", ""))) + ((Convert.ToDouble(row.Cells[10].FormattedValue.ToString().Replace(",", "")) / Convert.ToDouble(row.Cells[3].FormattedValue.ToString().Replace(",", ""))) * (Convert.ToDouble(row.Cells[4].FormattedValue.ToString().Replace(",", ""))))).Sum().ToString();
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message);
           }

1 Ответов

Рейтинг:
11

Richard MacCutchan

Учитывая весь этот код спагетти, я не удивлен. Не используйте одиночные операторы с таким количеством составных частей, как это. И не используйте Convert.ToDouble, особенно в составных операторах, так как невозможно найти проблемы, если строка не является допустимой. Воспользуйся Double.TryParse таким образом, вы можете поймать ошибки в тексте.

И если вы хотите знать, почему строка содержит ошибку, то используйте свой отладчик, чтобы увидеть, что она содержит. Сейчас никто не может догадаться, что это такое.


Maciej Los

5ed!