Sơ Mi Tv Ответов: 1

Как посчитать и сравнить число в datagirdview C#


всем привет,

У меня есть метки "Hardwork" и 1 datagirdview display при загрузке формы. Я использую приведенный ниже код для сравнения количества в столбце "TotalTime". Я хочу, чтобы если значение находится в столбце "TotalTime"> = 30, то метки "Harwork" + 1

но не бежать.результат таков: указанное приведение недопустимо.

Пожалуйста, помогите мне это исправить

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

public void BtnSearch_Click(object sender, EventArgs e)

       {
           db = new DbConnector();
           lbTotal.Text = "00";

           db.fillDataGridView("select *from tbl_WorkLoad where TimeComplete Between'" + dateTimePicker1.Value.ToString("dd-MM-yy| HH:mm:tt") + "' and '" + dateTimePicker2.Value.ToString("dd-MM-yy| HH:mm:tt") + "'", dataGridView1);

           const string HardWorkLabelText = "Hard Work Count: {0}";
           const int HardWorkThreshold = 30;

           try
           {
               IEnumerable<DataGridViewRow> rows = dataGridView1.Rows.Cast<DataGridViewRow>().Where(r => ((Int32)r.Cells["TotalTime"].Value) >= HardWorkThreshold);

               lbHardwork.Text = string.Format(HardWorkLabelText, rows.Count());

               {
                   for (int i = 0; i < dataGridView1.Rows.Count; i++)
                   {
                       lbTotaltime.Text = (Convert.ToString(double.Parse(lbTotaltime.Text) + double.Parse(dataGridView1.Rows[i].Cells[7].Value.ToString())));

                  
           }
           catch (Exception ex)
           {

               MessageBox.Show(ex.Message.ToString());
           }
       }

BillWoodruff

Вы уже задавали этот вопрос и получили ответы с рабочим кодом, а также предложения о том, как проанализировать, почему ваши коды не работают. Почему вы перепечатываете.?

Sơ Mi Tv

но у меня есть проблема, указанная приведение не является действительным. Я думаю, что есть необходимость преобразовать int32 =>??? я не знаю :(

Sơ Mi Tv

Мое предложение заключается в следующем:
Вы можете подсчитать HardworkCount только внутри цикла for... и покажите его в ярлыке после цикла for –

Это правильно?

1 Ответов

Рейтинг:
0

OriginalGriff

Этот код даже не будет компилироваться, а тем более давать ошибки приведения - перед ним стоит ложная открытая фигурная скобка. for петля, которая не имеет соответствующей закрывающей фигурной скобки, и закрывающая фигурная скобка в конце конца петли также отсутствует.

Я бы заподозрил, что если бы подобный код был выполнен, то ошибка приведения сводится к формату даты, который вы передаете в свою БД: вы никогда не должны объединять строки для формирования SQL-выражений, но передавать значения в качестве параметров, используя соответствующие типы данных: передача даты и времени должна mena использовать значение DateTime в качестве параметра, чтобы БД не пыталась выяснить, какой формат даты вы используете (и обычно ошибаетесь).


Sơ Mi Tv

спасибо за предложение

BillWoodruff

к вашему сведению: это репост, и я уже снабдил ОП проверенным рабочим кодом и идеями о том, как отладить его код: https://www.codeproject.com/Answers/5283430/Count-label-and-compare-number-in-Csharp