Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
8 / 8 / 10
Регистрация: 16.10.2012
Сообщений: 523

Проверка на пустоту ячеек всей таблицы dataGridView

16.05.2015, 22:57. Показов 4861. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Хочу сделать так, чтобы по нажатию на кнопку процедура проверяла, есть ли пустые значения в ячейках таблицы и если есть, то выводить сообщение, что не все ячейки таблицы заполнены (можно даже список строк выдать для наглядности), в обход одного столбца, который имеет право быть пустым.
Делаю это так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//Проверка на пустоту ячейки таблицы
        public bool checkEmptyDataGridCell(int freeColumn, DataGridView dataGrid)
        {
            //int indexRow = dataGrid.SelectedCells[0].RowIndex;
            for (int i = 0; i < dataGrid.RowCount - 1; i++)
            {
                for (int j = 0; j < dataGrid.ColumnCount; j++)
                {
                    if ((dataGrid.Rows[i].Cells[j].Value == null) || (dataGrid.Rows[i].Cells[j].Value.ToString() == ""))
                    {
                        if ((dataGrid.Rows[i].Cells[freeColumn].Value == null) || (dataGrid.Rows[i].Cells[freeColumn].Value.ToString() == ""))
                        {
                            break;
                        }
                        else
                        {
                            return false;
                        }
                    }
                }
                
            }
            return true;
        }
Код сохранения:
C#
1
2
3
4
5
6
7
8
9
10
11
12
//Кнопка "Сохранить данные", вкладка "Компьютеры"
        private void buttonSaveRecord_Click(object sender, EventArgs e)
        {
            if (checkEmptyDataGridCell(12, dataGridVComp) == true)
            {
                MessageBox.Show("Проверьте ячейки таблицы!", "Ошибка сохранения!", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            else
            {
                conMySQL.SaveTable("Param_sis_blokov", dataGridVComp);
            }
        }
Не понимаю почему не работает, помогите с кодом, в понедельник уже сдавать программу на тестирование :-(

Добавлено через 1 час 11 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//Проверка на пустоту ячейки таблицы
        public bool checkEmptyDataGridCell(int freeColumn, DataGridView dataGrid)
        {
            //int indexRow = dataGrid.SelectedCells[0].RowIndex;
            for (int i = 0; i < dataGrid.RowCount - 1; i++)
            {
                for (int j = 0; j < dataGrid.ColumnCount; j++)
                {
                    if ((dataGrid.Rows[i].Cells[j].Value == null) || (dataGrid.Rows[i].Cells[j].Value.ToString() == ""))
                    {
                        if ((dataGrid.Rows[i].Cells[freeColumn].Value == null) || (dataGrid.Rows[i].Cells[freeColumn].Value.ToString() == ""))
                        {
                            j = freeColumn;
                        }
                        else
                        {
                            return false;
                        }
                    }
                }
                
            }
            return true;
        }
Пробовал так, но все равно бредово, я не знаю как обойти этот 1 столбец, т.к. он не всегда имеет один и тот же индекс и он обычно пуст, а его нужно не считать в цикле в этом, так оно бы работало прекрасно, но с этим обходом...

Добавлено через 29 минут
Я сделял
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public int indexRow, indexColumn = 0;
 
        //Проверка на пустоту ячейки таблицы
        public bool checkEmptyDataGridCell(int freeColumn, DataGridView dataGrid)
        {
            //int indexRow, indexColumn = 0;
            for (int i = 0; i < dataGrid.RowCount - 1; i++)
            {
                for (int j = 0; j < dataGrid.ColumnCount; j++)
                {
                    if ((dataGrid.Rows[i].Cells[j].Value == null) || (dataGrid.Rows[i].Cells[j].Value.ToString() == ""))
                    {
                        if (j == freeColumn)
                        {
                            j = freeColumn;
                        }
                        else
                        {
                            indexRow = i;
                            indexColumn = j;
                            return false;
                        }
                    }
                }
                
            }
            return true;
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.05.2015, 22:57
Ответы с готовыми решениями:

Проверка ячеек на пустоту в DataGridView
Здравствуйте, уважаемые форумчане, столкнулся с проблемой проверки ячеек на пустоту в DataGridView при добавлении данных, не подскажете,...

Проверка ячеек таблицы на пустоту
Можно ли средствами html/css чекать пустые ли ячейки( не имеют текста) для последующей рабоыт с ними. Знаю, как сделать на js, но хотелось...

проверка на пустоту всей базы
какой запрос проверяет базу на то, чтобы в ней были только пустые значения

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.05.2015, 22:57
Помогаю со студенческими работами здесь

Проверка ячеек на пустоту. Условие
Всем привет! Прошу небольшой помощи. Есть условие на ячейку: если переменная не пуста, то выводится содержимое ячейки, иначе -...

Delphi excel проверка ячеек на пустоту
добрый день всем, возникла небольшая проблемка в программе, в цикле поставил проверку на пустоту ячеек. Проверяю пошагово он в условию не...

DataGridView проверка на пустоту ячейки
Здравствуйте, помогите пожалуйста разобраться, Как проверить dataGridView1 содержит пустое значение или нет? Есть 2 базы данных...

Проверка на пустоту таблицы
Как проверить пуста ли таблица или нет? То есть если в таблице не осталось записей никаких а я нажимаю кнопку &quot;Delete&quot; и тут...

Проверка на пустоту таблицы
в общем как сделать проверку на то что в таблице нету никаких записей.......например у меня есть таблица &quot;orders&quot;, и нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru