【问题标题】:Binding Mysqldata to datagridview cause error将 Mysql 数据绑定到 datagridview 导致错误
【发布时间】:2016-11-11 14:39:09
【问题描述】:

我在 mysql 中有一个带有文本、id 和图像 (blob) 的表,现在我需要在 datagridview 中显示数据。这就是我所做的

MySqlConnection mysqlCon = new  

MySqlConnection(MySQLConnectionString);
mysqlCon.Open();

MySqlDataAdapter MyDA = new MySqlDataAdapter();
string sqlSelectAll = "SELECT * from info";
MyDA.SelectCommand = new MySqlCommand(sqlSelectAll, mysqlCon);

DataTable table = new DataTable();
MyDA.Fill(table);

dataGridView1.DataSource = new BindingSource(table,null); // Error at this line

我收到以下错误

我该如何解决这个问题

编辑

我发现错误是因为某些图像是空 blob,当我选择所有带有图像的行时,我不再收到错误。

在绑定过程中是否有办法将其对死

【问题讨论】:

  • 它与绑定无关 - DGV 无法将 BLOB 转换为图像列的图像。可能是数据的问题。您是否手动尝试做某事?
  • 你好,请检查编辑
  • 您是否有与图像列相关的代码在做某事? DGV 的正常行为是只显示 DBNull 的损坏图像

标签: c# mysql datagridview


【解决方案1】:

Null 值的 DGV 图像列的正常行为是简单地显示经典的损坏图像:

因此,请确保您没有代码在某处做某事导致错误。鉴于invalid parameter aksi,请确保其中没有包含损坏/错误数据的行。您还可以指定数据为 Null 时使用的默认图像:

// class var for the image
private Image noImg = Properties.Resources.exclamation;
...
// set DS and specify null image for col:
dgv2.DataSource = new BindingSource(dtSample, null);
dgv2.Columns[2].DefaultCellStyle.NullValue = noImg;

如果数据实际上已损坏或您的代码正在执行导致错误的操作(如自定义格式化程序),这可能无法解决您的问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 1970-01-01
    相关资源
    最近更新 更多