很抱歉再问一下这个问题.. 我只是简化这个问题.. 这是我的问题:
错误点是
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)
感谢您的帮助!
答案 0 :(得分:0)
DBNull
是您的查询将返回的内容。您不能将DBNull对象强制转换为其他类型。您可以执行以下操作以避免错误
Dim image As Byte()
If Not ISDBNull(DirectCast(command.ExecuteScalar(), Byte())) Then image = DirectCast(command.ExecuteScalar(), Byte())
这只是在将字段分配到DBNull
之前检查字段的类型是否为image