Member 13378284 Ответов: 2

Как проверить все ячейки столбца datagridview? Если одна или несколько ячеек пусты, она вернет значение?


Я хочу, чтобы проверить клетки моего элемента управления datagridview. кроме того, если хотя бы одна из ячеек пуста, она вернет "false"

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

и вот, у меня есть этот метод, который, как я знал, не является правильным. поскольку если когда-либо последний элемент в массиве имеет значение, это сделает "проверку" истинной. Я просто не могу получить правильный код или логику для того, что я планирую сделать.
public void checker()
        {
            string[] check = new string[50];
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                
                check[i] = dataGridView1.Rows[i].Cells[0].Value.ToString();
                
            }
            for (int e = 0; e < check.Length; e++)
            {
                if (check[e] == null)
                {
                    checking = "false";
                }
                else
                {
                    checking = "true";
                }
            }
        }

2 Ответов

Рейтинг:
0

Patrice T

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

Цитата:
Я хочу, чтобы проверить клетки моего элемента управления datagridview. кроме того, если хотя бы одна ячейка пуста, она вернет "false"

Это переводится как:
- Ответ "верно" до тех пор, пока вы не столкнетесь с пустой клеткой.
- Ответ "Ложь" только тогда, когда вы сталкиваетесь с пустой клеткой.
Которые приводят к коду решения 1. Вы устанавливаете ответ по умолчанию в начале и меняете его только тогда, когда встречаете ячейку, отвечающую вашему условию.

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

Отладчик-Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]
Отладка кода C# в Visual Studio-YouTube[^]
Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
0

RickZeeland

Вы могли бы сделать это так:

   checking = true;

      for (int i = 0; i < dataGridView1.Rows.Count; i++)
      {
         for (int j = 0; j < dataGridView1.Rows[i].Cells.Count; j++)
         {
            var cellValue = dataGridView1.Rows[i].Cells[j].Value;

            if (cellValue == null || 
cellValue == DBNull.Value || string.IsNullOrEmpty(CellValue.ToString()))
            {
                checking = "false";
                return;
            }
         }
      }