DataGridViewImageColumnはすべてのレコードを表示しません。
私はすべてのレコードを表示するdatagridviewを持っています。
しかし、これは起こっていません!
フィールドに画像があるレコード(「写真」など)のみ。
イメージを持たないレコードは表示されません。
なぜこれが起こっていますか?
私は他のすべてを試していないことは失敗します。このテーマについてのコードを追加しますInitializeComponent()
後DataGridViewはすべてのレコードを表示しません
var column1 = new DataGridViewImageColumn();
column1.DefaultCellStyle.NullValue = null;
column1.CellTemplate = new DataGridViewEmptyImageCell();
private class DataGridViewEmptyImageCell : DataGridViewImageCell
{
public override object DefaultNewRowValue { get { return null; } }
}
挿入しprivate void dataGridView1_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e);
中:
クラスの接続は、このメソッドを持っている:
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);
}
}
Load += delegate
{
foreach (var column in dataGridView1.Columns)
{
if (column is DataGridViewImageColumn)
(column as DataGridViewImageColumn).DefaultCellStyle.NullValue = null;
}
};
と、この:
これを試してみてください 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);
}
コードをご覧ください。それをチェックするためのコードが追加されました –