收到错误消息显示:参数无效

时间:2014-07-01 16:07:49

标签: vb.net ms-access

目前即时尝试此代码..我仍然收到错误:参数无效

我想使用vb.net显示来自访问数据库的图像。 我在OLE对象中访问保存图像..我想在PictureBox2.text中显示它 访问图像的列的名称是:PicFile 我可以将数据库中的图像看作长二进制数据,但我无法在VB.net中显示它

Private Sub GetImageFrmDB()
    Try


        Cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\lenovo\Documents\Final year stuff\BookStoreDb.mdb;")
        Cn.Open()
        str = "SELECT PicFile FROM Book_data WHERE ISBN='9780486407722'"

        Command = New OleDbCommand(str, Cn)
        Command.CommandType = CommandType.Text

        'Command.Parameters.AddWithValue("@ISBN", Isbn_.Text)
        dr = Command.ExecuteReader()

        If dr.Read Then
            Dim imgByte() As Byte
            Try
                imgByte = CType(dr("PicFile"), Byte())
                Dim stream As New System.IO.MemoryStream(imgByte)
                Dim bm As New Bitmap(stream)
                stream.Close()

            Catch ex As Exception
                MessageBox.Show(ex.Message)

            End Try
        End If
        dr.Close()
        Cn.Close()
        Command.Dispose()
        Cn.Dispose()
    Catch ex As Exception
        MessageBox.Show(ex.ToString)
    End Try
End Sub

1 个答案:

答案 0 :(得分:0)

将数据插入[PicFile]字段的代码未存储图像文件的内容,它存储(本地路径的表示)到图像文件。

hex.png

这显然不是有效的图片数据,因此尝试使用New Bitmap(stream)进行转换或在Image.FromStream(stream)中使用它会触发"参数无效&#34 34;错误,因为stream(参数)不包含表示有效图像的字节。

因此,您需要修复写入图像数据的代码到数据库中,然后才能修复再次读取它的代码。