无法将类型为“System.DBNull”的对象强制转换为MySQL Image的“System.Byte []”类型

时间:2016-05-16 13:32:46

标签: vb.net

很抱歉再问一下这个问题.. 我只是简化这个问题.. 这是我的问题:

错误点是

Dim image As Byte() = DirectCast(command.ExecuteScalar(), Byte())

代码是

 Dim stream As New MemoryStream()
  Dim command As New MySqlCommand("select Imageblob from employeedetail where EmployeeID = '" + TextBoxEmployeeID.Text + "'", cn)        
 Dim image As Byte() = DirectCast(command.ExecuteScalar(), Byte())
 stream.Write(image, 0, image.Length)

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

如果表中的字段为空值,则

DBNull是您的查询将返回的内容。您不能将DBNull对象强制转换为其他类型。您可以执行以下操作以避免错误

Dim image As Byte()
If Not ISDBNull(DirectCast(command.ExecuteScalar(), Byte())) Then image = DirectCast(command.ExecuteScalar(), Byte())

这只是在将字段分配到DBNull之前检查字段的类型是否为image