У меня есть Datagridview
, заполненный данными из моей базы данных.Столбец Datagridview, показывающий System.Drawing.Bitmap?
У меня есть 3 колонки в моей таблице базы данных: id, name, status.
Однако все они находятся в текстовом/строчном формате.
На основании данных, которые я получаю из столбца состояния моей базы данных (онлайн или офлайн), я пытаюсь поместить изображение в ячейку вместо простой сетевой или автономной строки.
Я приложил свой DGV
к событию DataBindingComplete
. В настоящее время этот код:
void DataGridView1DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
foreach (DataGridViewRow r in dataGridView1.Rows)
{
if (r.Cells["status"].Value.ToString() == "Online")
{
// add online image here
r.Cells["status"].Value = Resource1.MyOnlineIcon;
}
else if(r.Cells["status"].Value.ToString() == "Offline")
{
// add offline image here
r.Cells["status"].Value = Resource1.MyOfflineIcon;
}
}
Но проблема в том, что она показывает System.Drawing.Bitmap
на клетку, а на самом деле отображения изображения. Поскольку в моей базе данных тип данных для столбца состояния является строкой, DGV также создает столбец типа строки. Как изменить существующий столбец типа строки/текста на столбец изображения? Какой был бы лучший способ решить эту проблему?
Как вы привязки данные из базы данных? – Moop
Используя команду sql, я получаю данные из базы данных и сохраняю их в наборе данных. Затем я установил datagridview.Source в dataset.Tables [0] – aresz
Не могли бы вы добавить этот код к вопросу? Кроме того, я не думаю, что событие DataBindingComplete является подходящим местом для изменения содержимого ячеек. Предпочтительно преобразование из 'string' в' Bitmap' выполняется до привязки. – Moop