Member 13044689 Ответов: 2

Сумма столбцов в GridView в


Привет, моя проблема у меня есть 3 coloumns, чтобы сделать сумму и отобразить в общей колонке, но код ниже имеет ошибку с всякий раз, когда вы ставите нулевое значение, это даст мне
Input string was not in a correct format.
его единственное поле должно быть заполнено значением так что плз плз
plz some 1 help i want to allow null value and thx

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

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            string val1 = e.Row.Cells[3].Text; //Gets the value in Column 1
            string val2 = e.Row.Cells[4].Text; //Gets the value in Column 2
            string val3 = e.Row.Cells[5].Text; //Gets the value in Column 3
            Label lblTotal = (Label)e.Row.Cells[6].FindControl("Label1"); //

            if (string.IsNullOrEmpty(val1))
            { val1 = "0"; }
            if (string.IsNullOrEmpty(val2))
            { val2 = "0"; }
            if (string.IsNullOrEmpty(val3) )
            { val3 = "0"; }


            Int64 sum = Int64.Parse(val1) + Int64.Parse (val2) + Int64.Parse (val3);
            lblTotal.Text += sum.ToString();

        }

[no name]

Этот код не будет выдавать "входная строка была не в правильном формате" для нулевого значения. Как я уже говорил, вам нужно пройти через свой код с помощью отладчика и найти строку, которая вызывает исключение. Мы не можем сделать это для вас.

Member 13044689

y я сделал это спасибо

2 Ответов

Рейтинг:
20

Karthik_Mahalingam

использовать Типа int32.Метод TryParse [^], он будет заботиться о пустых, нулевых и нечисловых форматах

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            string val1 = e.Row.Cells[3].Text; //Gets the value in Column 1
            string val2 = e.Row.Cells[4].Text; //Gets the value in Column 2
            string val3 = e.Row.Cells[5].Text; //Gets the value in Column 3
            Label lblTotal = (Label)e.Row.Cells[6].FindControl("Label1"); //
          
             int _val1, _val2, _val3;
             int.TryParse(val1, out _val1); 
             int.TryParse(val2, out _val2);
             int.TryParse(val3, out _val3);

            int sum = _val1 + _val2 + _val3;

            lblTotal.Text += sum.ToString();

        }
    }


Member 13044689

спасибо сэр свою работу

Karthik_Mahalingam

добро пожаловать

Рейтинг:
0

Patrice T

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

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

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

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Member 13044689

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