sql >> データベース >  >> RDS >> Mysql

タイプ'System.DBNull'のオブジェクトをタイプ'System.Byte[]'にキャストできません。

    以前に行に保存された画像データがない可能性があるため、使用する前にDBNullをテストする必要があります。

    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
    

    このDBNullに注意してください テストは、スティーブが使用しているものとは異なります。 IsDBNull は言語関数ですが、彼が使用しているのはDataReaderのメソッドです。 オブジェクト。これは、さまざまな要件がある理由でもあります。さらに3番目の方法は、それをSystem.DbNullと比較することです。 :

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


    1. ORD()の例– MySQL

    2. Galera Cluster Cloudオファリングの比較:パート1 Amazon AWS

    3. MySQLにint(255)を格納した場合のMAX数はいくつですか?

    4. SQL Serverのビットフィールドにインデックスを付ける必要がありますか?