使用VB.NET从Access数据库中检索二进制数据

时间:2015-02-15 14:30:53

标签: vb.net ms-access

我需要一个代码,用于从vb.net中的访问数据库中检索图像

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

    Dim cnn As New OleDbConnection

    cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|datadirectory|\img.mdb"

    sql = "select * from picture where ID=" & TextBox2.Text & ""

    Dim adp As New OleDbDataAdapter(sql, cnn)



    'cmd.CommandText = sql

    'cmd.Connection = cn

    'sda.SelectCommand = cmd

    adp.Fill(dt)

    Dim Mydata(0) As Byte

    Mydata = CByte(dt.Rows(0)(1))

    Dim mr As New MemoryStream(Mydata)

    PictureBox1.Image = Image.FromStream(mr)

*** Mydata = CByte(dt.Rows(0)(1))在这一行我有问题.....

1 个答案:

答案 0 :(得分:2)

对我来说,行

Mydata = CByte(dt.Rows(0)(1))

触发编译时错误

  

类型的价值'字节'无法转换为Byte'的一维数组。

如果Option StrictOff,那么CByte()转换是不必要的。你可以简单地使用

Mydata = dt.Rows(0)(1)

或者,更简洁

Mydata = dt(0)(1)

但是,如果Option StrictOn,则上述内容将触发编译时消息

  

Option Strict On禁止来自'对象'的隐式转换到#By;'的一维数组。

在这种情况下,您需要使用

Mydata = CType(dt.Rows(0)(1), Byte())

Mydata = CType(dt(0)(1), Byte())