Отображение пустых ячеек в DataGridView C#

445
02 апреля 2017, 01:29

Здравствуйте!
При загрузке WinForm формы вызывается метод, который должен заполнить DataGridView данными полученные с запроса (использую MySQL)
Запрос выполняется успешно.
Но проблема в том, что DataGridView не может отобразить пустые ячейки, которые есть в таблице MySQL. То есть, отображает в том случае, если столбцы (ячейки) строки не имеют пустых значений.
И вопрос состоит в следующем:
Как отобразить все ячейки (строки) в DataGridView с пустыми значениями?
Пытался написать метод DisplayEmptuCells который должен решить эту проблему, но ничего не сработало.
Спасибо заранее!)

private void EmployeesTestForm_Load(object sender, EventArgs e) {...}

Метод который заполняет и настраивает DataGridView

public DataTable FillDataGridView(DataGridView dataGridView,  string query, int height, int[] cellsImages=null)
    {
        try
        {
            command = new MySqlCommand(query, connection); //Создаём запрос для поиска
            adapter = new MySqlDataAdapter(command); //Выполняем команду
                                                     //Для отображения в таблице
            //Создаём таблицу
            adapter.SelectCommand = command;
            table.Clear();
            adapter.Fill(table); //Вставляем данные при выполнении команды в таблицу
            Settings settings = new Settings();
            //настраиваем отображение таблицы
            settings.GetSettingDisplayTable(dataGridView, height);
            dataGridView.DataSource = table; //подключаем заполненную таблицу и отображаем
            //Попытка отобразить пустые ячейки
            settings.DisplayEmptuCells(dataGridView);
            if(cellsImages != null)
            //Для отображения картинки в DataGridView
            settings.GetViewImageInCellTable(dataGridView, cellsImages);
            return table;
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
            DataTable table = new DataTable();
            return table;
        }
    }

Метод (не сработал) который пытается (установить) разрешить отображать все ячейки в DataGridView, включая пустыми значениями.

 public void DisplayEmptuCells(DataGridView dataGridView)
    {
        foreach (DataGridViewRow rw in dataGridView.Rows)
        {
            for (int i = 0; i < rw.Cells.Count; i++)
            {
                if (rw.Cells[i].Value == null || rw.Cells[i].Value == DBNull.Value || String.IsNullOrWhiteSpace(rw.Cells[i].Value.ToString()))
                {
                    rw.Cells[i].Value = " ";
                }
            }
        }
        for (int i = 0; i < dataGridView.RowCount; i++)
        {
            dataGridView.Rows[i].Visible = true;
        }
    }
READ ALSO
Сервер для программы

Сервер для программы

У меня есть плеер, написанный на C#Я хочу создать удаленный сервер для того чтобы записывать плейлисты пользователя, для авторизации в приложении...

240
Замена символа во время ввода datagridview

Замена символа во время ввода datagridview

Есть необходимость заменять символ во время ввода текста в ячейку datagridview, нужно "," менять на ":"Посоветуйте как реализовать?

205
Свойство AutoSizeMode для TabControl

Свойство AutoSizeMode для TabControl

В ячейке TableLayoutControl содержится TabControlВ TabControl содержатся страницы со следующими свойствами:

216
Найти индекс элемента list по его значению

Найти индекс элемента list по его значению

Собственно вопрос в названии темыЕсть коллекция:

330