получение числового значения из таблицы данных C #

1

Я пытаюсь получить числовое значение из datagridview. Тип данных как для значения в таблице, так и для переменной (weeklyTotal) является целым числом. Также я пытаюсь сделать его целым. Я просмотрел весь сайт для подобных проблем, и все же ни одно из решений не помогло. Сообщение об ошибке, которое я получаю, является "при создании формы с номером, значение должно быть меньше бесконечности". Я вернулся к моему столу более одного раза, чтобы убедиться, что у меня нет недопустимой ценности.

это ошибка времени выполнения, и IDE всегда указывает на эту строку

weeklyTotal + = (int) dataGridView1.Rows [i].Cells [1].Value;

for (int i = 0; i < this.dataGridView1.Rows.Count; i++)
        {
            sdate = dataGridView1.Rows[i].Cells[2].Value.ToString();
            ddate = dataGridView1.Rows[i].Cells[3].Value.ToString();

            if ((weekFirstDay <= Convert.ToInt32(sdate) &&
                Convert.ToInt32(sdate) <= (weekFirstDay + 7))||(weekFirstDay <= 'Convert.ToInt32(ddate) &&'
                Convert.ToInt32(ddate) <= (weekFirstDay + 7)))
            {
                dataGridView1.Rows[i].Selected = true;
                dataGridView1.Rows[i].Visible = true;
                weeklyTotal += (int)dataGridView1.Rows[i].Cells[1].Value;

                //weeklyTotalString = dataGridView1.Rows[i].Cells[1].Value.ToString();
                //weeklyTotal += Convert.ToInt32(weeklyTotalString);


            }
            else
Теги:
datagridview
runtime

2 ответа

1
Лучший ответ

Ну, это потому, что

(int)dataGridView1.Rows[i].Cells[1].Value

не будет передавать значение вашей ячейки в тип int. Вы просто берете строку с надписью "hey compiler, пожалуйста, рассматривайте ее как тип int", но она по-прежнему будет строковым типом внизу. Используйте метод Convert.ToInt32 как и раньше.

  • 0
    я вернулся, чтобы использовать предыдущий код Convert.ToInt32. кажется, работает лучше. причина, почему прокомментировал, потому что это было показать мне сообщение об ошибке. большое спасибо. Есть ли другой способ преобразования значения из datagridview в строку, а затем в числовое значение?
0

Возможно, вы пытаетесь выполнить (int) действие с использованием значения DBNull. Я предполагаю, что вы заполняете datagridview данными из базы данных.

Попробуй это:

if(dataGridView1.Rows[i].Cells[1].Value != DBNull.Value)
{
    weeklyTotal += (int)dataGridView1.Rows[i].Cells[1].Value;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню