DataGridView不显示所有记录

时间:2017-01-24 22:18:48

标签: c# .net winforms datagridview ado.net

DataGridViewImageColumn不显示所有记录 我有一个datagridview来显示所有记录 但这不会发生! 只有那些在一个字段中有图片的记录(比如 - “照片”) 并且不显示那些没有图像的记录 为什么会这样? 我没有尝试过其他一切都失败了 试试这个:

            Load += delegate
        { 
            foreach (var column in dataGridView1.Columns)
            {
                if (column is DataGridViewImageColumn)
                    (column as DataGridViewImageColumn).DefaultCellStyle.NullValue = null;
            }
        };

和此:

   var column1 = new DataGridViewImageColumn();
   column1.DefaultCellStyle.NullValue = null;
   column1.CellTemplate = new DataGridViewEmptyImageCell();

    private class DataGridViewEmptyImageCell : DataGridViewImageCell
    {
        public override object DefaultNewRowValue { get { return null; } }
    }

InitializeComponent()之后和private void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e);之后插入 添加有关此主题的代码:
Class Connection有这种方法:

        public void FillDataGridView(DataGridView dataGridView, string query="")
     {
         try
         {
             command = new MySqlCommand(query, connection); //Создаём запрос для поиска
             adapter = new MySqlDataAdapter(command); //Выполняем команду
             //Для отображения в таблице
             DataTable table = new DataTable(); //Создаём таблицу
             adapter.Fill(table); //Вставляем данные при выполнении команды в таблицу
             dataGridView.DataSource = table; //подключаем заполненную таблицу и отображаем
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
     }

具有DataGridView的表单中的代码:

        private void TestFormTwo_Load(object sender, EventArgs e)
    {
        FillDataGridView("");
    }

    public void FillDataGridView(string valueToSearch)
    {
        //получаем запрос на отображение данных с поиском
        string nameTable = "info";
        string[] nameFieldsAll = {"id_info", "full_name", "passport_id", "age", "address", "phone", "photo"};
        string[] nameFieldsAS = {"ИД","ФИО","Серия и номер паспорта","Возраст","Адрес","Телефон","Фото"};
        string[] numericFields = {"id_info","age"};
        string query = connection.GetQueryShowSearch(nameTable, nameFieldsAll, nameFieldsAS, numericFields, valueToSearch);
        //заполняем данные таблицы на основе запроса
        connection.FillDataGridView(dataGridView1, query);
        settings.GetSettingDisplayTable(dataGridView1, 100);
        settings.GetViewImageInCellTable(dataGridView1, 6);
    }

1 个答案:

答案 0 :(得分:0)

我检查过datagridview显示带有imageColumn的行,即使image为null并且单元格样式设置为null。 如果您已经调试了代码,并且确定这些行实际上在dataGrid的数据源中,则代码中必定存在一些错误,或者datagridview属性中的某些内容设置不正确。 请发布更多代码(runnable preferred),以便我们查看。