[英]Error loading image in the DataGridView in C#
我试图从数据库中加载数据并在DataGridView中显示它,我可以很好地显示文本,但是当我尝试加载图像时出现错误。 我的代码是
private void LoadData()
{
using (MySqlConnection conn = new MySqlConnection(connectionManager.connectionString))
{
try
{
//MySqlDataAdapter _adapter = new MySqlDataAdapter("SELECT `ID`, `First Name`, `Last Name`, `Email`, `Mobile`, `Course`, `Gender` FROM student_img", conn);
MySqlDataAdapter _adapter = new MySqlDataAdapter("SELECT `ID`, `First Name`, `Last Name`, `Email`, `Mobile`, `Course`, `Gender` , `Image` FROM student_img", conn);
DataSet _dataset = new DataSet();
_adapter.Fill(_dataset, "table");
dataGridViewStudent.DataSource = _dataset;
dataGridViewStudent.DataMember = "table";
lblRecords.Text = dataGridViewStudent.Rows.Count.ToString();
DataGridViewImageColumn Image = new DataGridViewImageColumn();
Image = (DataGridViewImageColumn)dataGridViewStudent.Columns[7];
}
catch (Exception ex)
{
MessageBox.Show("Connection Error!\n" + ex.Message, "Error Message",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
我收到的错误消息是
这两行没有意义:
DataGridViewImageColumn Image = new DataGridViewImageColumn();
Image = (DataGridViewImageColumn)dataGridViewStudent.Columns[7];
如果您的列是自动生成的,则图像列将照此生成,并且无需其他代码即可工作。 这是最简单的方法。
而且由于您没有创建似乎正在执行的任何其他列。 那么这些线能实现什么呢?
特别是因为您不在任何地方添加额外的列? (顺便说一句,您无论如何都无法执行,因为它已经是columns集合的一部分。)
如果在代码中创建dgv列,则必须为每种类型提供正确的类型,并将每种类型连接到正确的数据源列,然后将它们添加到DGV中:
string sql = "Select preview, text from Covers;";
..
..
DataSet ds = new DataSet();
adapter.Fill(ds);
// either simply set this to true or..
dataGridView1.AutoGenerateColumns = false;
// add all columns..
DataGridViewImageColumn dvgic = new DataGridViewImageColumn();
// setting their names
dvgic.Name = "preview";
dvgic.HeaderText = "Preview";
// and relating them to the data source fields..
dvgic.DataPropertyName = "preview";
dataGridView1.Columns.Add(dvgic);
dataGridView1.Columns.Add("text", "Text");
dataGridView1.Columns["text"].DataPropertyName = "text";
dataGridView1.DataSource = ds.Tables[0];
如果出于某种原因需要将ImageColumn
单元格设置为Image
,无论它来自任何来源,包括正在馈入ImageColumn
的db字段,那么您都必须设置单元格的Value
,而不是单元格本身。
但是您的错误消息似乎表明您至少有一些数据不是有效的图像。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.