Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Không thể truyền đối tượng kiểu 'System.DBNull' sang kiểu 'System.Byte []'.

Vì có thể không có dữ liệu hình ảnh nào được lưu trước đó cho một hàng, bạn cần kiểm tra DBNull trước khi cố gắng sử dụng nó:

If IsDBNull(dr("photo")) = False Then
    Dim imagebytes As Byte() = CType(dr("photo"), Byte())
    Using ms As New IO.MemoryStream(imagebytes)
        PictureBox1.Image = Image.FromStream(ms)
        PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    End Using
Else
      ' maybe display a "no Photo Available" stock image
End If

Lưu ý rằng DBNull này thử nghiệm khác với thử nghiệm Steve đang sử dụng. IsDBNull là một hàm ngôn ngữ trong khi hàm mà anh ta đang sử dụng là một phương thức của DataReader đối tượng, đó cũng là lý do tại sao có các yêu cầu khác nhau. Tuy nhiên, cách thứ ba là so sánh nó với System.DbNull :

If DBNull.Value.Equals(dr("photo")) = False Then
    ...
End If


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để lấy ID của nhiều hàng được chèn trong MySQL?

  2. Kiểm tra xem tên người dùng có tồn tại trong bảng mysql thông qua php hay không?

  3. Khôi phục cơ sở dữ liệu MySQL từ các tệp vật lý

  4. PHP PDO:việc chuẩn bị lại một câu lệnh ảnh hưởng đến hiệu suất như thế nào

  5. cách ngăn cơ sở dữ liệu thêm dấu gạch chéo vào dấu ngoặc kép