Boopalslm Ответов: 1

Как вычислить сумму столбца в представлении таблицы данных пустые ячейки.


Как получить значения суммы представления таблицы данных для метки в c# win forms 2010, но в моем представлении таблицы данных некоторые ячейки пусты.

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

Как вычислить сумму столбца в представлении таблицы данных пустые ячейки.

1 Ответов

Рейтинг:
0

Mithlesh Shaw

Попробуйте следующий код:

decimal val=0;
foreach (DataGridViewRow item in dataGridView1.Rows)
{
   if (item.Cells[1] != null && item.Cells[1].Value != null)
        val += Convert.ToDecimal(item.Cells[1].Value);
}
MessageBox.Show(val.ToString());


Boopalslm

Ошибка пришла для нижеприведенной строки

val += конвертировать.ToDecimal(item.Ячейки[1].Значение);

Входная строка была не в правильном формате.

Mithlesh Shaw

Здесь 1-индекс ячейки. В вашей программе вы ставите свой индекс клеток. Индекс ячейки начинается с 0.

Boopalslm

я знаю, но мой индекс ячейки равен 9, я установил 9 для индекса ячейки, в 9-й ячейке есть несколько пустых ячеек, так что ниже ошибка пришла.

Объект не может быть приведен из DBNull в другие типы.

Mithlesh Shaw

десятичное значение=0;
const int CELL_INDEX = 1;//индекс вашего столбца
по каждому элементу (элемент ячейки datagridviewrow в dataGridView1.Строк)
{
если (пункт.Ячейки[CELL_INDEX] != null && item.Ячейки[CELL_INDEX].Значение != null)
val += конвертировать.ToDecimal(item.Ячейки[CELL_INDEX].Ценность);
}
Ящик для сообщений.Показать(val.ToString());

Boopalslm

Произошла та же ошибка.

val += конвертировать.ToDecimal(item.Ячейки[9].Значение);

Объект не может быть приведен из DBNull в другие типы.

Mithlesh Shaw

заменить, если заявление и проверить
если (пункт.Ячейки[CELL_INDEX] != null
&& пункт.Ячейки[CELL_INDEX].Value != null && item.Ячейки[CELL_INDEX].Значение != Система.Значение dbnull.Ценность)

Boopalslm

я менять свой если заявление, но
перед запуском произошла ошибка

недопустимый термин выражения '}'

Boopalslm

k он работает нормально , но показывает нулевое значение(0), но мои ячейки сетки имеют некоторые значения.

Mithlesh Shaw

вы пропустили '}'
вот полный код

десятичное значение=0;
const int CELL_INDEX = 1;//индекс вашего столбца
по каждому элементу (элемент ячейки datagridviewrow в dataGridView1.Строк)
{
если (пункт.Ячейки[CELL_INDEX] != null
&& пункт.Ячейки[CELL_INDEX].Value != null && item.Ячейки[CELL_INDEX].Значение != Система.Значение dbnull.Ценность)
val += конвертировать.ToDecimal(item.Ячейки[CELL_INDEX].Ценность);
}
Ящик для сообщений.Показать(val.ToString());

Boopalslm

Сэр, большое спасибо, что работаете супер, и еще раз спасибо.